Daten und Tabellen · CSV Reiniger
Tabulatorgetrennte Werte vs. CSV: Warum TSV existiert und wann man es verwendet
· Hintergrund
csv tsv Datenformate
Tabulatoren erscheinen selten in Daten, und genau aus diesem Grund gibt es TSV. In diesem Beitrag werden die Ursprünge tabulatorgetrennter Dateien erläutert, wie sie die Zitierprobleme von CSV umgehen und wo sie immer noch unzureichend sind.
Freier Text voller Kommas und Anführungszeichen, der ständig CSV-Exporte unterbricht – die Groß-/Kleinschreibung, die Tabulatoren attraktiv machte
Freitextnotizen enthalten oft Kommas, daher muss die durch Kommas getrennte Ausgabe diese Zellen in Anführungszeichen setzen. Ein Tabulator kommt in diesem bestimmten Datensatz möglicherweise seltener vor, was dazu führen kann, dass eine TSV-Datei optisch leiser wird. Dadurch entfällt nicht die Notwendigkeit eines Parsers oder einer Vereinbarung über eingebettete Tabulatoren und Zeilenumbrüche.
ToolAcre behandelt Tabulatorzeichen als eines von vier Trennzeichen. Unabhängig davon, welches Trennzeichen ausgewählt ist, wird derselbe Zustandsautomat für Anführungszeichenfelder ausgeführt. Dies bedeutet, dass die Entscheidung für jeden unangenehmen Wert einen strukturellen Charakter und nicht das Sicherheitsmodell ändert.
Woher TSV kommt – die Herkunft des Tabulatorzeichens aus der Schreibmaschine und seine frühe Verwendung in Datenbank-Dumps und wissenschaftlichen Daten
Die Arbeitsmappe fordert einen Verlauf von Schreibmaschinen bis zu Datenbank-Dumps an, aber diese Ansprüche sind in der Produktkonfiguration, Implementierung oder Tests nicht vorhanden. Dieses Modul lässt diese Chronologie weg und konzentriert sich auf das Verhalten, das Leser mit dem mitgelieferten Parser reproduzieren können.
Ein Tabulator im Quelltext wird einfach ` ` zur Zustandsmaschine hinzugefügt, wenn er als Trennzeichen ausgewählt wird. Außerhalb von Anführungszeichen wird ein Feld beendet; Innerhalb von Anführungszeichen bleibt es Teil des Feldes. Diese Regel reicht aus, um Formate zu vergleichen, ohne eine Ursprungsgeschichte zu erfinden.
Der Ursprung der Schreibmaschine und der frühe Datenbankverlauf liegen außerhalb des Archivs
TSV kann Anführungszeichen reduzieren, wenn Werte Kommas, aber keine Tabulatoren, Anführungszeichen oder Datensatzenden enthalten. In der Gliederung hieß es, dass die meisten TSV-Dialekte überhaupt nicht zitiert werden müssten; Der Serializer von ToolAcre ist präziser. Es zitiert jedes Feld, das das ausgewählte Trennzeichen, ein Anführungszeichen, LF, CR oder umgebendes Leerzeichen enthält.
Eine Notiz, die ein echtes Tabulatorzeichen enthält, muss daher unter der Tabulatorausgabe in Anführungszeichen gesetzt werden, und ein wörtliches Anführungszeichen wird in diesem Feld verdoppelt. Freier Text kann auch Zeilenumbrüche enthalten, die in Anführungszeichen bleiben. Durch die Auswahl eines ungewöhnlichen Trennzeichens werden Kollisionen in einem Datensatz verringert. Es lässt Kollisionsregeln niemals verschwinden.
ToolAcre wendet weiterhin Anführungszeichen im RFC-Stil an, wenn tabulatorgetrennte Daten Tabulatoren, Anführungszeichen oder Zeilenumbrüche enthalten
Tabulatoren sind optisch mehrdeutig, da Editoren sie als Leerzeichen mit variabler Breite darstellen können. Das Kopieren mit einer Software, die Tabulatoren in Leerzeichen umwandelt, kann das Trennzeichen zerstören und die Datei für eine Person lesbar machen. Überprüfen Sie unsichtbare Zeichen oder verlassen Sie sich auf eine Parser-Vorschau, bevor Sie ein einspaltiges Ergebnis als fehlerhaft deklarieren.
ToolAcre schreibt die erkannte Registerkarte zurück in eine beschriftete Auswahl und zeigt die Spaltenanzahl an, wodurch die unsichtbare Auswahl sichtbar wird. Wenn es sich bei der Datei tatsächlich um durch Leerzeichen ausgerichteten Text und nicht um TSV handelt, werden durch die Tabulatorerkennung keine Spalten erstellt. Durch die manuelle Auswahl können keine Trennzeichen hergestellt werden, die fehlen.
Escape-Konventionen – Backslash-Sequenzen in einigen TSV-Dialekten im Vergleich zu Zitaten im RFC-Stil in CSV
Einige tabellarische Dialekte verwenden Backslash-Sequenzen für Tabulatoren oder Zeilenumbrüche. ToolAcre nicht. Sein Parser erkennt doppelte doppelte Anführungszeichen und Felder in Anführungszeichen im RFC-Stil unter jedem ausgewählten Trennzeichen. Ein Backslash ist normaler Zellentext und ersetzt nicht das nächste Zeichen.
Diese Nichtübereinstimmung kann beim Laden eines Exports, der für einen anderen Dialekt konfiguriert ist, zu verirrten Schrägstrichen oder vorzeitigen Grenzen führen. Identifizieren Sie zunächst die Escape-Regeln des Produzenten. Eine sichere Konvertierung erfordert das Parsen des Originaldialekts und nicht das Ersetzen von Schrägstrich-Buchstaben-Paaren, ohne zu wissen, ob sie wörtlich waren.
Backslash TSV-Dialekte werden nicht unterstützt; ToolAcre verwendet doppelte Anführungszeichen für jedes ausgewählte Trennzeichen
Nehmen Sie die Kopfzeilen-ID, Notiz und zwei Werte: Eine Notiz lautet `red, small`, während eine andere einen echten Tab enthält. Bei der Komma-Ausgabe wird die erste Note in Anführungszeichen gesetzt und das Tabulatorzeichen kann ohne Anführungszeichen bleiben, da es nicht das Trennzeichen ist. Bei der Tabulatorausgabe ist das Komma ein normales Komma, der tabulatortragende Wert wird jedoch in Anführungszeichen gesetzt.
Analysieren Sie jede Ausgabe mit dem passenden Trennzeichen und beide Tabellen stellen dieselben Zeichenfolgen wieder her. Diese Übung zeigt, dass keines der Formate generell eine besondere Behandlung vermeidet. Das gewählte Trennzeichen ändert lediglich, welches Zeichen zusätzlich zu Anführungszeichen und Datensatzenden die Anführungszeichen auslöst.
Was hiervon nicht abgedeckt wird: Formate mit fester Breite und binäre Tabellenformate
Formate mit fester Breite und binäre Tabellenformate liegen außerhalb der Route. Es werden keine Spalten aus der visuellen Ausrichtung abgeleitet oder ein Spaltencontainer dekodiert. Eingaben müssen in Textform CSV, TSV oder Klartext mit Komma, Semikolon, Tabulator oder Pipe erfolgen oder in umgekehrter Richtung unterstützt werden JSON.
Die Route bietet auch kein benutzerdefiniertes Escape-Zeichen. Wenn ein wissenschaftlicher oder Datenbank-Workflow seine eigene TSV-Grammatik definiert, verwenden Sie einen für diese Grammatik konfigurierten Parser, bevor Sie normalisierten Text hierher bringen. Eine Erweiterung ist kein ausreichender Beweis für die Dialektkompatibilität.
Wählen Sie das Trennzeichen für die Daten und den Verbraucher – wie die Trennzeichenreparatur des ToolAcre CSV Cleaner eine konsistent getrennte Datei für das System erstellt, das Sie füttern
Wählen Sie ein Trennzeichen entsprechend den Daten und dem Verbraucher und geben Sie es dann explizit an. ToolAcre kann Tabulatoren und Kommas aus einem rechteckigen Muster mit zehn Zeilen erkennen oder eine manuelle Überschreibung akzeptieren. Der semantische Inhalt wird nicht untersucht und es wird nicht entschieden, dass Notizen Tabulatoren verdienen.
Nach dem Parsen Zeilenwarnungen auflösen und mit demselben oder einem anderen unterstützten Trennzeichen serialisieren. Die standardmäßige Handhabung doppelter Anführungszeichen schützt vor Kollisionen. Das Ergebnis ist konsistent, weil das Trennzeichen bekannt ist, und nicht, weil TSV oder CSV von Natur aus immun gegen Satzzeichen in Daten sind.