Coding for KidsCoding for Kids
Kreative LevelHerausforderungenLehrerhandbuch
Für Funktionen abstimmen
Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe

Serialisierungsmodule
JSON Modul

Zielsetzung

Gehe zur Servicestation und stelle sicher, dass die Daten ordnungsgemäß gespeichert werden, indem du das JSON-Modul zur Formatierung der Dateien verwendest.

Es gibt eine Servicestation südlich des Nebengebäudes im Neubaugebiet; dieses gesamte Areal wird neu gestaltet, um Nutzpflanzen anzubauen. Die Station verfügt über eine Vielzahl von Terminals, die Daten für die neue Entwicklung verarbeiten. Wir könnten die Daten manuell schreiben, aber das würde sehr viel Zeit in Anspruch nehmen. Für den Prozess der Datenverarbeitung können wir JSON verwenden, was für JavaScript Object Notation steht. Dies ist ein datensprachenunabhängiges Format, das Informationen in einem leicht lesbaren Format zur Datenspeicherung und -übertragung ablegt.

Um JSON in Python zu verwenden, können wir import json nutzen, was uns Zugriff auf JSON-Funktionen verschafft. Für unsere Zwecke werden wir die folgenden Funktionen verwenden:

  • json.loads(): Wandelt einen JSON-String in Python-Daten um. Er nimmt ein Argument, nämlich den String, den du in Python parsen möchtest.
  • json.dumps(): Wandelt Python-Daten in ein JSON-String-Objekt um. Diese Funktion kann bis zu vier (4) Argumente annehmen, wobei nur das erste Argument erforderlich ist. Sie lauten wie folgt:
    1. Python-Daten, die du in JSON umwandeln möchtest: Diese können folgende Datentypen haben: Dictionaries, Listen, Tupel, String, Integer, Float, Boolean und None.
    2. indent: Anzahl der Leerzeichen, die du zu Beginn des Datenpunkts hinzufügen möchtest
    3. separators: Diese bestimmen die Zeichen, die zwischen und/oder am Ende der Datenpunkte erscheinen sollen.
    4. sort_keys: Sortiert die Schlüssel eines Dictionaries alphabetisch, wenn du einen Dictionary-Datentyp konvertierst.

Zu Beginn begib dich zum goldenen X-Marker im Außenposten auf der linken Seite und wende dich dem Schreibtisch mit dem Memo zu. Verwende die read()-Funktion, um die benötigten Informationen zur Bestätigung des Terminalstatus zu überprüfen und notiere diese. Gehe zum hellen X-Marker vor dem Terminal; dort befindet sich eine Konstante namens transmission. Nutze json.dumps(), um sie als JSON zu formatieren, damit wir sie konvertieren können, zum Beispiel: transmission = json.dumps(transmission).

Erstelle ein Dictionary namens load und speichere den Wert von json.loads() unter Verwendung der Konstante transmission als Argument. Dadurch wird das JSON in Python konvertiert, sodass die Informationen leicht zugänglich sind. Verwende die speak()-Funktion mit den im Memo aufgeführten Schlüsseln unter Verwendung des erstellten load-Dictionaries. Zum Beispiel: player.speak(load["system"]) – mache dies für alle Schlüssel.

Nachdem du die Informationen am Terminal überprüft hast, gehe zur Station, betrete sie und begebe dich zum hellen X-Marker über dem grünen Teppich. Überprüfe das Memo mit der read()-Funktion, kontrolliere und notiere die Werte. Im Editor befindet sich ein vordefiniertes Dictionary namens profile. Fülle die fehlenden Werte mit den Informationen aus dem Memo aus.

Gehe zum dunklen X-Marker über dem grünen Teppich, wende dich dem Terminal zu und erstelle eine Variable namens transfer, in der du den Rückgabewert von json.dumps() speicherst und das profile-Dictionary als einziges Argument übergibst. Dadurch wird das Dictionary in ein JSON-String-Objekt konvertiert. Verwende die vorgefertigte display()-Funktion und übergib das transfer-JSON, um die Daten im Terminal zu speichern.

Gehe zum dunklen X-Marker über dem roten Teppich und verwende die read()-Funktion, um die bereits im Terminal eingegebenen Daten zu überprüfen. Die Daten werden nicht in einem korrekten Format dargestellt; um die Informationen ordnungsgemäß zu speichern, müssen sie in einem JSON-Format abgelegt und formatiert werden. Die Daten befinden sich in einer Dictionary-Konstante namens red_data. Erstelle eine Variable namens red_storage und speichere darin den Rückgabewert der Funktion json.dumps().

Um die Daten zu formatieren, füge der Funktion folgende Argumente hinzu: Übergebe red_data, um die Konstante in JSON umzuwandeln, füge indent hinzu und setze ihn auf 5, um den Text zu formatieren, und füge separators hinzu mit dem Wert ("- ", " = "), um diese Symbole am Ende jeder Zeile hinzuzufügen. Die Zeile sollte wie folgt aussehen: red_storage = json.dumps(red_data, indent=5, separators=('- ', ' = ')). Verwende die vorgefertigte display()-Funktion und übergebe das red_storage-JSON-String, um die formatierten Daten zu speichern und anzuzeigen.

Gehe zum dunklen X-Marker über dem blauen Teppich, wende dich dem Terminal zu und nutze die read()-Funktion. Wie zuvor werden die Daten nicht ordnungsgemäß gespeichert und müssen formatiert, aber auch sortiert werden. Die Daten befinden sich in einer Konstante namens blue_data. Erstelle eine Variable namens blue_storage und speichere darin den Rückgabewert der Funktion json.dumps().

Für die Argumente: Übergebe blue_data, um die Konstante in JSON umzuwandeln, füge indent hinzu und setze ihn auf 4, um den Text zu formatieren, und füge separators hinzu mit dem Wert (".0", " = "), um diese Symbole am Ende jeder Zeile einzufügen. Zusätzlich füge als letztes Argument sort_keys hinzu und setze es auf True, also: sort_keys=True. Verwende die vorgefertigte display()-Funktion und übergebe das blue_storage-JSON-String, um die sortierten Daten zu speichern und anzuzeigen, und schließe so das Level ab.

Codebuch