JSON und CSV mit Python

JSON und CSV sind die zwei häufigsten Datenaustauschformate – Python verarbeitet beide mit der Standardbibliothek.

JSON

import json
daten = {"name": "Hanse", "dienste": ["web", "mail"]}
text = json.dumps(daten, ensure_ascii=False)   # dict -> str
zurueck = json.loads(text)                      # str -> dict

# Aus Datei lesen/schreiben
with open("daten.json", "w", encoding="utf-8") as f:
    json.dump(daten, f, ensure_ascii=False, indent=2)
with open("daten.json", encoding="utf-8") as f:
    daten = json.load(f)

CSV

import csv
with open("tabelle.csv", newline="", encoding="utf-8") as f:
    for zeile in csv.DictReader(f):   # Header als Keys
        print(zeile["name"])

with open("out.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["name", "stadt"])
    writer.writerow(["Michael", "Lübeck"])

Pitfalls

CSV mit newline="" öffnen (sonst doppelte Zeilenumbrüche unter Windows). Bei JSON immer ensure_ascii=False für lesbare Umlaute. Für große Datenmengen (100 MB+) eignet sich ijson oder das Streaming von Zeilen.

Weiterlesen: Dateien lesen und schreiben · HTML-Grundlagen · SQL-Grundlagen