Daten aus Tabellen holen ohne den Verstand zu verlieren
CSV, JSON, Excel – zwischen Formaten konvertieren ohne alles kaputt zu machen.
Jemand schickt dir eine Excel-Datei. Deine Anwendung braucht JSON. Das sollte einfach sein.
Ist es nie.
Die Tabelle hat verbundene Zellen. Oder seltsam formatierte Datumsangaben. Oder diese eine Spalte, in der jemand „N/A" in ein Zahlenfeld getippt hat. Jede Konvertierung wird zu einer Debugging-Session.
Hier erfährst du, wie du es weniger schmerzhaft machst.
CSV: Der universelle Übersetzer
Fast jede Tabellenkalkulations-App exportiert nach CSV. Fast jedes System kann CSV lesen. Es ist der kleinste gemeinsame Nenner der Datenformate.
CSV ist nur Text: Werte getrennt durch Kommas, Zeilen getrennt durch Zeilenumbrüche.
name,email,age
John,john@example.com,32
Jane,jane@example.com,28
Einfach. Bis es das nicht mehr ist.
Das Komma-Problem. Was, wenn ein Wert ein Komma enthält? „Smith, John" als Name bricht das Parsing. Lösung: Werte in Anführungszeichen setzen. Gute CSV-Tools handhaben das automatisch. Schlechte nicht.
Das Zeilenumbruch-Problem. Was, wenn ein Wert einen Zeilenumbruch enthält? Dieselbe Lösung: Anführungszeichen. Derselbe Vorbehalt: nicht alle Tools handhaben es.
Das Kodierungs-Problem. Excel unter Windows verwendet standardmäßig eine andere Zeichenkodierung als Excel auf Mac. Sonderzeichen werden beschädigt. Exportiere als „CSV UTF-8" wenn möglich.
JSON: Was APIs wirklich wollen
Webanwendungen bevorzugen JSON:
[
{"name": "John", "email": "john@example.com", "age": 32},
{"name": "Jane", "email": "jane@example.com", "age": 28}
]
Konvertierung von CSV nach JSON ist normalerweise unkompliziert. Die erste Zeile wird zu Property-Namen, nachfolgende Zeilen werden zu Objekten.
Probleme entstehen, wenn:
Typen verloren gehen. CSV sind alles Strings. „32" könnte eine Zahl oder Text sein. JSON-Konvertierung muss raten. Die meisten Tools nehmen an: sieht aus wie eine Zahl, wahrscheinlich eine Zahl.
Nulls sind mehrdeutig. Leere Zelle = null? Leerer String? Property komplett weglassen? Verschiedene Tools entscheiden unterschiedlich.
Arrays existieren nicht. CSV ist flach. Wenn dein JSON verschachtelte Arrays braucht, machst du manuelle Arbeit.
Üblicher Workflow
- Aus Excel/Sheets als CSV exportieren
- In einem Texteditor öffnen, auf offensichtliche Probleme prüfen
- Nach JSON konvertieren
- JSON-Struktur validieren
- Ein paar Datensätze stichprobenartig prüfen
Die Stichprobe ist wichtig. Automatisierte Konvertierung kann Daten stillschweigend beschädigen. Ein Datum wird zu einer Zahl. Eine Postleitzahl verliert ihre führende Null. „O'Brien" wird zu „O'Brien". Verifiziere, bevor du vertraust.
Mit seltsamen Daten umgehen
Datumsangaben. Excel speichert Datumsangaben intern als Zahlen. Export kann „44927" statt „2023-01-15" produzieren. Kenne dein Datumsformat vor der Konvertierung.
Zahlen als Text. Postleitzahlen, Telefonnummern, IDs – diese sehen aus wie Zahlen, sollten aber nicht als Zahlen behandelt werden. Führende Nullen sind wichtig. Konvertiere explizit zu String.
Unicode. Namen mit Akzenten, Daten in nicht-lateinischen Schriften. Stelle sicher, dass deine Pipeline UTF-8 von Ende zu Ende handhabt.
Andersherum
JSON nach CSV verliert Informationen. Verschachtelte Objekte flachen umständlich ab. Arrays werden zu... was genau? Mehrere Zeilen? Verkettete Strings?
Für flaches JSON mit konsistenter Struktur funktioniert die Konvertierung gut. Für komplexe verschachtelte Daten triffst du Entscheidungen, wie es abgeflacht wird. Dokumentiere diese Entscheidungen.
YAML und XML
YAML ist JSONs hipper Cousin. Lesbarer, dieselbe Datenstruktur, einfach zwischen ihnen zu konvertieren.
XML ist die Enterprise-Version. Ausführlich, weithin von älteren Systemen unterstützt, erfordert mehr Parsing-Aufwand.
Beide konvertieren nach JSON und zurück. Das Hauptproblem sind Attribute vs. Elemente in XML – JSON hat diese Unterscheidung nicht.
Datenkonvertierung dreht sich darum, zu wissen, was schiefgehen kann, und danach zu suchen. Automatisiere die Konvertierung, verifiziere die Ergebnisse und vertraue nie darauf, dass „es einfach funktioniert".