JSON zu CSV · Python
JSON zu CSV in Python
Python bringt mit dem eingebauten csv-Modul alles mit, was Sie für die Umwandlung von JSON in CSV brauchen. Für flache Datensätze reicht der DictWriter, für komplexere Tabellen ist pandas oft schneller geschrieben. Beide Wege erzeugen sauberes CSV mit korrekt gesetzten Anführungszeichen.
Ansatz
Standardbibliothek json zum Parsen, csv.DictWriter zum Schreiben mit automatischem Quoting.
Code-Beispiel
import json
import csv
with open("daten.json", encoding="utf-8") as f:
daten = json.load(f) # erwartet eine Liste von Objekten
# Spalten aus allen Objekten sammeln, in Reihenfolge des ersten Auftretens
felder = []
for zeile in daten:
for key in zeile:
if key not in felder:
felder.append(key)
# utf-8-sig schreibt ein BOM, damit Excel die Umlaute richtig erkennt
with open("daten.csv", "w", newline="", encoding="utf-8-sig") as f:
writer = csv.DictWriter(f, fieldnames=felder, delimiter=";")
writer.writeheader()
writer.writerows(daten)
# csv kümmert sich selbst um Quoting bei Trennzeichen, Zeilenumbrüchen und Anführungszeichen
Hinweise
Das csv-Modul übernimmt das Escaping vollständig, Sie müssen Trennzeichen oder Anführungszeichen in Werten nicht selbst behandeln. Wichtig ist der Parameter newline="" beim Öffnen der Datei, sonst entstehen unter Windows doppelte Zeilenumbrüche. Der DictWriter füllt fehlende Schlüssel mit einem leeren Feld, wirft aber einen ValueError, wenn ein Objekt einen Schlüssel hat, der nicht in fieldnames steht. Deshalb sammelt das Beispiel zuerst alle Feldnamen. Verschachtelte Objekte und Listen schreibt der DictWriter als Python-Textdarstellung. Serialisieren Sie sie vorher mit json.dumps oder machen Sie die Struktur flach, zum Beispiel mit pandas: pd.json_normalize(daten).to_csv("daten.csv", index=False, sep=";", encoding="utf-8-sig"). Der Delimiter Semikolon passt zu deutschem Excel. Bei sehr großen Dateien lohnt sich das zeilenweise Schreiben statt eines kompletten Einlesens.
FAQ
Häufige Fragen
csv-Modul oder pandas, was ist besser?
Das csv-Modul hat keine Abhängigkeiten und reicht für die meisten Fälle. pandas lohnt sich, wenn Sie die Daten ohnehin transformieren oder verschachtelte Strukturen mit json_normalize flach machen wollen.
Wie öffne ich das Ergebnis korrekt in Excel?
Schreiben Sie die Datei mit encoding="utf-8-sig" und delimiter=";". Das BOM sorgt dafür, dass Excel die Umlaute richtig anzeigt, und das Semikolon entspricht der Erwartung von deutschem Excel.
Sie wollen nicht selbst programmieren? Der JSON-CSV-Konverter wandelt Ihre Daten direkt im Browser um, ohne Upload und ohne Installation.