json.csv.de

JSON zu CSV · Python

JSON zu CSV in Python

Python bringt mit dem eingebauten csv-Modul alles mit, was du für die Umwandlung von JSON in CSV brauchst. 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
felder = []
for zeile in daten:
    for key in zeile:
        if key not in felder:
            felder.append(key)

with open("daten.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=felder)
    writer.writeheader()
    writer.writerows(daten)
# csv kümmert sich selbst um Quoting bei Kommas, Zeilenumbrüchen und Anführungszeichen

Hinweise

Das csv-Modul übernimmt das Escaping vollständig, du musst Kommas oder Anführungszeichen in Werten nicht selbst behandeln. Wichtig ist der Parameter newline="" beim Öffnen der Datei, sonst entstehen unter Windows doppelte Zeilenumbrüche. Verschachtelte Objekte oder Listen werden vom DictWriter nicht automatisch aufgelöst, hier serialisierst du das Teilobjekt vorher mit json.dumps oder flachst die Struktur per Punkt-Notation ab. Für UTF-8 mit BOM, das Excel sauber erkennt, nutzt du encoding="utf-8-sig". Wenn die Objekte unterschiedliche Schlüssel haben, sammelst du wie im Beispiel zuerst alle Feldnamen, sonst wirft DictWriter bei fehlenden Spalten einen Fehler. Bei sehr großen Dateien lohnt sich das zeilenweise Schreiben statt eines kompletten Einlesens.

Anzeige

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 du die Daten ohnehin transformierst oder verschachtelte Strukturen mit json_normalize flach klopfen willst.

Wie öffne ich das Ergebnis korrekt in Excel?

Schreibe die Datei mit encoding="utf-8-sig". Das BOM sorgt dafür, dass Excel die Umlaute richtig anzeigt, statt sie als Latin-1 zu interpretieren.

Du willst nicht selbst programmieren? Der JSON-zu-CSV-Converter wandelt deine Daten direkt im Browser um, ohne Upload und ohne Installation.

Anzeige
Anzeige
Anzeige
Anzeige