Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge3 [2021/02/22 14:02] – Ivo Blöchliger | lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge3 [2021/02/25 06:21] (current) – [Dictionaries (JSON Objects)] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== JSON-Dateien ====== | ||
| + | <WRAP info> | ||
| + | * JSON-Dateien sind ebenfalls Text-Dateien, | ||
| + | * JSON-Dateien können sehr einfach in Python importiert werden und dann verarbeitet werden. | ||
| + | * JSON kennt u.a. folgenden Datentypen: | ||
| + | * Zahlen | ||
| + | * Strings (Zeichenketten, | ||
| + | * Listen (zwischen '' | ||
| + | * Dictionaries (zwischen '' | ||
| + | * Mehr dazu auf https:// | ||
| + | </ | ||
| + | ===== Listen (Arrays) ===== | ||
| + | |||
| + | <WRAP todo> | ||
| + | Testen und verstehen Sie (Zeile für Zeile!) folgendes Python-Programm: | ||
| + | <code python> | ||
| + | primzahlen = [2, | ||
| + | for p in primzahlen: | ||
| + | print(" | ||
| + | |||
| + | # Indizies starten bei 0! | ||
| + | print(" | ||
| + | |||
| + | csv = "" | ||
| + | for p in primzahlen: | ||
| + | csv += " | ||
| + | csv+=" | ||
| + | print(csv) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | <WRAP info> | ||
| + | * Listen werden zwischen '' | ||
| + | * Zugriff auf einzelne Elemente erfolgt mit z.B. '' | ||
| + | * Mit Format-Strings können Dinge wie Zahlen formatiert ausgegeben werden. Das Format ist | ||
| + | <code python> | ||
| + | print(" | ||
| + | print(" | ||
| + | </ | ||
| + | * Listen können auch wieder Listen enthalten: | ||
| + | <code python> | ||
| + | tabelle = [[1, | ||
| + | print(tabelle[0]) | ||
| + | print(tabelle[0][1]) | ||
| + | |||
| + | print(" | ||
| + | for zeile in tabelle: | ||
| + | print(zeile) | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | Vervollständigen Sie folgenden Python-Code, | ||
| + | <code python> | ||
| + | tabelle = [[x*y for x in range(1,6)] for y in range(1,6)] | ||
| + | print(" | ||
| + | print(tabelle) | ||
| + | |||
| + | csv = "" | ||
| + | |||
| + | # | ||
| + | # Hier die Variable csv erweitern | ||
| + | # Inspirieren Sie sich dabei beim Beispiel mit den Primzahlen | ||
| + | # | ||
| + | |||
| + | # Ausgabe | ||
| + | print(csv) | ||
| + | </ | ||
| + | Die Ausgabe soll wie folgt aussehen: | ||
| + | <code txt> | ||
| + | 1;2;3;4;5; | ||
| + | 2;4;6;8;10; | ||
| + | 3; | ||
| + | 4; | ||
| + | 5; | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ====== JSON in, CSV out ====== | ||
| + | <WRAP todo> | ||
| + | * Speichern Sie folgende Datei im Ordner '' | ||
| + | * Folgender Code liest die JSON-Datei ein und man erhält einen liste in der Variablen '' | ||
| + | <code python jsonreader.py> | ||
| + | import json # Für die Verarbeitung von JSON-Daten | ||
| + | |||
| + | # Datei öffnen | ||
| + | datei = open(" | ||
| + | # JSON-Daten parsen | ||
| + | data = json.load(datei) | ||
| + | # Datei schliessen | ||
| + | datei.close() | ||
| + | |||
| + | # Schlaufe über die Daten | ||
| + | for i in range(len(data)): | ||
| + | print(" | ||
| + | </ | ||
| + | * Erweitern Sie obiges Python-Programm so, dass eine Zeile im CSV-Format produziert wird. | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Speichern Sie folgende Datei im Ordner '' | ||
| + | * Schreiben Sie ein Python-Programm, | ||
| + | * Speichern Sie das Resultat in der Datei '' | ||
| + | <code python> | ||
| + | datei = open(" | ||
| + | datei.write(csv) | ||
| + | datei.close() | ||
| + | </ | ||
| + | * Überprüfen Sie, ob sich die Datei mit Excel korrekt öffnen lässt. | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Dictionaries (JSON Objects) ====== | ||
| + | <WRAP info> | ||
| + | * Listen (Array) werden mit Zahlen von 0 bis n-1 indiziert, wobei n die Anzahl Element sind. | ||
| + | * Dictionaries werden durch Strings (Zeichenketten) indiziert und haben a priori keine fixe Ordnung. | ||
| + | * Dictionaries werden zwischen '' | ||
| + | * Studieren Sie folgenden Code: | ||
| + | <code python> | ||
| + | d = {" | ||
| + | print(d[" | ||
| + | print(d.keys()) | ||
| + | print(d.values()) # Liefert [20, 22, 23] | ||
| + | print(d.items()) | ||
| + | # Loop über alle Elmente | ||
| + | for key,value in d.items(): | ||
| + | print(" | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Schreiben Sie ein Python-Programm, | ||
| + | |||
| + | Verwenden Sie dazu obige Code-Blöcke, | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Diejenigen, die Daten im JSON-Format haben (z.B. von Spotify), können versuchen, diese als CSV zu exportieren. Die anderen können diese Datei verwenden: {{lehrkraefte: | ||
| + | </ | ||