Lesen und schreiben von strukturierten Daten
Die bisher besprochenen Methoden um Daten formatiert Zeile für Zeile auszugeben, eignen sich ausgezeichnet für Texte, oder Daten die sich einfach in Tabellenform darstellen lassen. Manchmal weisen unsere Daten jedoch eine stärkere Strukturierung auf und lassen sich nur mühsam in Listen verwalten. Solche, meist hierarchisch strukturierten Daten, werden typischerweise in Dictionaries verwaltet.
Auch für die Speicherung solcher Daten steht in Python mit dem Json Modul bereits eine fertige Lösung zur Verfügung. Json steht für Javascript object format und stammt ursprünglich aus der Web-Entwicklung. Inzwischen wird es aber als Standardformat für den Austausch von strukturierten Daten verwendet.
Auch hier müssen wir erst wieder mit der open
Anweisung eine Datei öffnen um ein File Object zu erhalten. Dann können wir ein Dictionary mit der Methode dump
als ganzes schreiben und mit der Methode load
auch wieder lesen. Dies ist im folgenden Code demonstriert:
import json # Das Modul muss explizit geladen werden
dict = {"peter" : 1978, "anna" : 2002} # Ein Beispiel dictionary
f = open("mydata.json", "w") # Datei zum schreiben öffnen
json.dump(dict, f)
f.close()
f = open("mydata.json", "r") # Datei zum lesen öffnen
dict = json.load(f) # Dictionary aus Datei lesen
f.close()
Sie können dies im folgenden gleich selber ausprobieren.
Experimente
- Können Sie verschachtelte Dictionaries speichern?
- Werden Listen und Tuple welche in Dictionaries als Werte gespeichert sind auch korrekt geschrieben und wider eingelesen?
- Können Sie eine eigene .json-Datei schreiben und diese anschliessend mit Python einlesen?