This is an old revision of the document!
JSON-Dateien
- JSON-Dateien sind ebenfalls Text-Dateien, in denen ebenfalls strukturierte Information gespeichert werden kann, und zwar in der JavaScript Object Notation, kurz JSON.
- JSON-Dateien können sehr einfach in Python importiert werden und dann verarbeitet werden.
- JSON kennt u.a. folgenden Datentypen:
- Zahlen
- Strings (Zeichenketten, zwischen Anführungszeichen
- Listen (zwischen
[
und]
), die wieder JSON-Datentypen enthalten kann. - Dictionaries (zwischen
{
und}
). Diese sind wie Listen, aber mit beliebigen Strings anstatt Zahlen als Indizies.
- Mehr dazu auf https://www.json.org/json-de.html
Testen und verstehen Sie (Zeile für Zeile!) folgendes Python-Programm:
primzahlen = [2,3,5,7,11,13,17,19,23] for p in primzahlen: print("%d ist prim!" % p) # Indizies starten bei 0! print("Die zweite Primzahl ist %d" % primzahlen[1]) csv = "" # Leere Zeichenkette for p in primzahlen: csv += "%d;" % p csv+="\n" # Zeilenumbruch print(csv)
- Listen werden zwischen
[
und]
durch Kommas getrennt geschrieben. - Zugriff auf einzelne Elemente erfolgt mit z.B.
a[2]
(drittes Element der Liste, die in der Variablena
gespeichert ist). - Mit Format-Strings können Dinge wie Zahlen formatiert ausgegeben werden. Das Format ist
print("bla %d bla" % 5) # <- %d wird durch 5 ersetzt, man erhält "bla 5 bla" print("x=%d, y=%d" % (23,42)) # <- das erste %d wird durch 23, das zweite durch 42 ersetzt, man erhält "x=23, y=42".
- Listen können auch wieder Listen enthalten:
tabelle = [[1,2,3],[4,5,6]] print(tabelle[0]) # erstes Element ist die Liste [1,2,3] print(tabelle[0][1]) # zweites Element der Liste [1,2,3], also 2. print("\nZeilenweise Ausgabe:") for zeile in tabelle: print(zeile)
Vervollständigen Sie folgenden Python-Code, so dass er die Tabelle im CSV Format ausgibt:
tabelle = [[x*y for x in range(1,6)] for y in range(1,6)] csv = "" # # Hier die Variable csv erweitern # Inspirieren Sie sich dabei beim Beispiel mit den Primzahlen # # Ausgabe print(csv)
Die Ausgabe soll wie folgt aussehen:
1;2;3;4;5; 2;4;6;8;10; 3;6;9;12;15; 4;8;12;16;20; 5;10;15;20;25;
JSON in, CSV out
- Speichern Sie folgende Datei im Ordner
challenges
: data01.json - Schreiben Sie ein Python-Programm, das die Datei
data01.json
einliest und eine Zeile im CSV-Format produziert.
- Speichern Sie folgende Datei im Ordner
challenges
: data07.json - Schreiben Sie ein Python-Programm, das die Datei
data07.json
einliest und eine Zeile im CSV-Format produziert. - Speichern Sie das Resultat in der Datei
data07.csv
mit dem folgenden Code:
datei = open("data07.csv") datei.write(csv) datei.close()
- Überprüfen Sie, ob sich die Datei mit Excel korrekt öffnen lässt.
</code>