CSV, JSON und YAML
Drei Formate tragen den Großteil der strukturierten Daten der Welt. Zwischen ihnen umzuwandeln ist einfach; es ohne stille Beschädigung zu tun, erfordert etwas Sorgfalt.
Veröffentlicht am
Wofür jedes Format gedacht ist
CSV ist eine Tabelle: Zeilen und Spalten, sonst nichts. Es ist universell lesbar, winzig klein und kann nichts Verschachteltes ausdrücken. JSON ist ein Baum – Objekte in Arrays in Objekten – und die Sprache, die fast jede Web-API spricht. YAML drückt dieselben Strukturen aus wie JSON, aber mit Einrückung statt geschweifter Klammern, was es für Menschen viel angenehmer zu lesen und zu bearbeiten macht und der Grund ist, warum Konfigurationsdateien sich zunehmend dorthin verlagert haben.
Die Falle der Typumwandlung
Das ist die Stelle, die Menschen tatsächlich Geld kostet. Eine CSV-Datei enthält nur Text – es gibt keine Möglichkeit, einen Wert als Zahl, Datum oder Zeichenkette zu kennzeichnen. Konverter raten also, und die Vermutungen sind häufig falsch:
- Eine Postleitzahl wie
01234wird zur Zahl1234und verliert die führende Null. - Eine Artikelnummer wie
1-2wird zu einem Datum. - Eine lange Kontonummer wird zur Gleitkommazahl und verliert ihre letzten Ziffern.
NA, das für Nordamerika steht, wird zu „nicht verfügbar“.
Jeder dieser Fehler geschieht unbemerkt. Deshalb sollte eine sorgfältige Umwandlung von CSV in JSON jeden Wert als Zeichenkette belassen und die Entscheidung Ihnen überlassen – genau das tut der Konverter dieser Seite bewusst, auch wenn es auf den ersten Blick pedantisch wirkt.
Was die Umwandlung in CSV nicht überlebt
Verschachtelung. Ein JSON-Array flacher Objekte wird zu einer sauberen Tabelle. Sobald ein Wert selbst ein Objekt oder ein Array ist, gibt es keine Spalte mehr, in die er passt. Die Möglichkeiten sind, mit zusammengesetzten Schlüsseln abzuflachen, den verschachtelten Teil als Text in seine Zelle zurückzuschreiben oder ihn zu verwerfen – und ihn stillschweigend zu verwerfen ist die schlechteste der drei. Ihn als JSON-Text in die Zelle zu schreiben, hält die Daten wenigstens wiederherstellbar.
Die Tücken von YAML
YAML ist angenehm zu lesen und ungewöhnlich leicht falsch zu schreiben.
- Einrückung ist Struktur, und Tabulatoren sind nicht erlaubt. Ein falsch gesetztes Leerzeichen ändert die Bedeutung, statt einen Fehler auszulösen.
- Manche einfachen Wörter sind Wahrheitswerte. In älterem YAML werden
y,n,on,off,yesundnoalle als wahr oder falsch gelesen – eine Länderspalte mitNOfür Norwegen wird also zufalse. Setzen Sie sie in Anführungszeichen. - Kommentare verschwinden bei der Umwandlung in JSON, weil JSON keine Möglichkeit hat, sie darzustellen.
Der Hin- und Rückweg ist nicht garantiert
Wenn Sie JSON in YAML und zurück umwandeln, erhalten Sie meist das, womit Sie begonnen haben. Bei CSV in JSON und zurück ist das meist nicht der Fall: Anführungszeichenstil, Spaltenreihenfolge bei Datensätzen unterschiedlicher Form und die Darstellung leerer Werte sind alles Entscheidungen, und verschiedene Tools entscheiden unterschiedlich. Wenn ein Hin- und Rückweg exakt sein muss, überprüfen Sie ihn, statt es anzunehmen.
Für den Wechsel zwischen ihnen: CSV in JSON umwandeln, JSON in CSV umwandeln oder JSON in YAML umwandeln – und prüfen Sie das Ergebnis, da der Hin- und Rückweg nicht immer exakt ist.