Daten und Tabellenkalkulationen · CSV Cleaner
So funktioniert die Erkennung von CSV-Trennzeichen: Kommas, Semikolons, Tabulatoren und Pipes
· Wie es funktioniert
csv Datenbereinigung Dateiformate
Eine CSV-Datei sagt nie, welches Zeichen ihre Felder trennt, daher muss die Software raten. In diesem Beitrag wird erklärt, wie das Trennzeichen-Sniffing funktioniert, warum es bei schwierigen Dateien fehlschlägt und wie man das Trennzeichen explizit macht.
Eine Datei, die als eine lange Spalte geöffnet wird – warum das Trennzeichen nirgendwo in einer CSV gespeichert wird
Ein Datenanalyst öffnet einen .csv-Export und sieht in jeder Zeile ein langes Feld. Die Erweiterung teilt dem Leser nicht mit, welches Trennzeichen verwendet wurde, und die Datei enthält normalerweise keine Trennzeichendeklaration. Eine Anwendung, die Kommas annimmt, liest einen durch Semikolon getrennten Header wie Name;Stadt;Notizen als einzelne Spalte. Bevor Sie Werte ändern, fragen Sie, welches Zeichen die Felder tatsächlich teilt und ob der Importer eine Möglichkeit hat, seine Schätzung zu überschreiben.
Die vier unterstützten Kandidaten: Komma, Semikolon, Tab und Pipe
ToolAcre berücksichtigt Komma, Semikolon, Tab und Pipe als Kandidaten. Ein Semikolon kommt häufig vor, wenn Kommas bereits als Dezimaltrennzeichen verwendet werden, Tabulatoren verhindern Interpunktionskollisionen bei einfachen Exporten und Pipes trennen manchmal Protokoll- oder Datenbank-Dumps. Ein Leerzeichen gehört nicht zu den automatischen Auswahlmöglichkeiten des Tools: Namen und Freitextzellen enthalten oft Leerzeichen. Fügen Sie einen Kandidaten nicht nur deshalb hinzu, weil er im Beispieltext häufig vorkommt. Ein Trennzeichen muss Zeilen in konsistente Felder unterteilen.
So funktioniert Sniffing: Kandidatenzeichen pro Zeile zählen und dasjenige bevorzugen, das eine konsistente Feldanzahl über die Zeilen hinweg ergibt
Die Implementierung entfernt eine führende UTF-8 byte-Reihenfolgemarkierung und analysiert eine Stichprobe von bis zu zehn Zeilen mit jedem Kandidaten. Es zeichnet die Breite dieser Zeilen auf und lehnt jeden Kandidaten ab, der nie mindestens zwei Spalten ergibt. Ein Kandidat erzielt eine höhere Punktzahl, wenn er zeilenübergreifend mehr Spalten erzeugt; Inkonsistente Breiten werden in der Wertung zweimal bestraft. Entscheidend ist, dass beim Parsen Felder in Anführungszeichen berücksichtigt werden, sodass ein Komma innerhalb einer Adresse in Anführungszeichen nicht als Feldgrenze gilt. Dies unterscheidet sich von der naiven Zeichenzählung und ist der Grund, warum eine unordentliche Adressspalte die Erkennung nicht verhindern muss.
Wo das Sniffing scheitert – Freitextspalten voller Kommas, einspaltige Dateien und Felder in Anführungszeichen, die das wahre Trennzeichen verbergen
Keine Vermutung ist unfehlbar. Eine sehr kurze Datei enthält kaum Beweise, eine wirklich einspaltige CSV-Datei enthält keinen Kandidaten, der sich in zwei Teile aufteilt, und fehlerhafte Anführungszeichen können dazu führen, dass die Analyse mehrerer Kandidaten unregelmäßig aussieht. Eine mit Trennzeichen gefüllte Freitextspalte kann bei unterbrochenen Anführungszeichen mit dem echten Trennzeichen konkurrieren. Gemischte Trennzeichen über Zeilen hinweg sind kein einheitlicher CSV-Dialekt. Das Tool meldet Parsing-Warnungen und macht die manuelle Auswahl von Trennzeichen verfügbar. Ein Benutzer, der die Upstream-Exportkonvention kennt, kann die abgeleitete Auswahl überschreiben, anstatt so zu tun, als sei die Heuristik eine Spezifikation.
Bearbeitetes Beispiel – ein durch Semikolons getrennter Export mit Kommas innerhalb von Adressen, der zeigt, warum eine naive Zählung das falsche Zeichen auswählt
Probieren Sie ein kleines Beispiel mit der Überschrift name;city;note und einer Zeile Ada;Paris;"Meeting at 10, near the station" aus. Bei der Zählung roher Kommas könnte fälschlicherweise Komma bevorzugt werden, da die Notiz Satzzeichen enthält, insbesondere über mehrere solcher Zeilen hinweg. Der Semikolon-Parser gibt drei Felder in beiden Zeilen zurück; Der Komma-Parser bietet nicht die gleiche rechteckige Struktur. Bestätigen Sie vor dem Zuschneiden, Deduplizieren oder Exportieren, dass in der Vorschau Name, Stadt und Notiz als separate Spalten angezeigt werden. Wenn eine Quellzeile ein nicht geschlossenes Zitat enthält, überprüfen Sie diese Zeile, anstatt sie stillschweigend zu verwerfen, um die Punktzahl zu verbessern.
Auswahl des Ausgabetrennzeichens – Anpassung des Trennzeichens an das Programm und das Gebietsschema, das die Datei als nächstes liest
Das Eingabetrennzeichen und das Ausgabetrennzeichen sind unterschiedliche Entscheidungen. Sie könnten eine europäische Semikolondatei importieren, aber durch Kommas getrennten Text im RFC-Stil für ein Programm exportieren, das Kommas erwartet. Ein korrekter Writer zitiert Felder, die das Ausgabetrennzeichen, eingebettete Anführungszeichen oder Zeilenumbrüche enthalten. Entscheiden Sie vor dem Herunterladen, ob Ihr Empfänger eine UTF-8-Stückliste benötigt. Einige Tabellenkalkulationsanwendungen verwenden eine Codierung, um die Codierung zu erkennen, während viele Parser die Datei ohne Codierung verwenden möchten. Überprüfen Sie den heruntergeladenen Header im Zielprogramm, nicht nur die Browservorschau.
Was dies nicht abdeckt: Dateien, die Trennzeichen zwischen Zeilen mischen, und Exporte mit fester Breite, die überhaupt kein Trennzeichen verwenden
Die Erkennung kann weder eine Datei reparieren, die das Trennzeichen mittendrin ändert, noch kann sie Spalten in einem Export mit fester Breite ableiten, in denen kein Trennzeichen vorhanden ist. Es weiß nicht, ob ein Komma in Anführungszeichen als Teil einer Straßenadresse oder als Fehler bei der Dateneingabe gemeint war: Es folgt der Syntax, nicht der Bedeutung. Der CSV-Cleaner bringt unregelmäßige Zeilen zum Vorschein und bewahrt deren Werte, anstatt zu raten, wie die Daten eines Kunden gelöscht werden. Verwenden Sie die Vorschau und die Warnungen, um ein Problem im Quellsystem zu diagnostizieren, bevor Sie irreversible Reinigungsschritte durchführen.
Machen Sie das Trennzeichen explizit, anstatt zu hoffen – wie die Trennzeichenreparatur des ToolAcre CSV Cleaner eine Datei mit einem konsistenten Trennzeichen erzeugt
Bei einer Trennzeichenschätzung handelt es sich um eine evidenzbasierte Analyse einiger Zeilen und nicht um eine in die CSV-Datei geschriebene Zusage. CSV Cleaner implementiert es lokal in Ihrem Browser, ermöglicht Ihnen die Auswahl eines anderen Trennzeichens und schreibt einen einheitlichen Ausgabedialekt. Wenn ein Importassistent nächste Woche etwas anderes vermutet, notieren Sie die Ausgabekonvention neben der Datei, damit der nächste Leser sie nicht erneut entdecken muss.