Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe

Serialisierungs-Module
JSON-Modul

Ziel

Gehe zur Servicestation und stelle sicher, dass Daten mithilfe des JSON-Moduls korrekt formatiert und gespeichert werden.

Es gibt eine Servicestation südlich des Nebengebäudes im Neubaugebiet; dieses gesamte Gebiet wird umgestaltet, um Pflanzen anzubauen. Die Station verfügt über verschiedene Terminals zur Datenverarbeitung für die neue Entwicklung. Wir könnten die Daten manuell eingeben, aber das würde viel Zeit in Anspruch nehmen. Für die Datenverarbeitung können wir JSON verwenden, was für JavaScript Object Notation steht. Dies ist ein von Programmiersprachen unabhängiges Datenformat, das Informationen in einer leicht lesbaren Form für Datenspeicherung und -übertragung speichert.

Um JSON mit Python zu verwenden, können wir import json nutzen, wodurch wir Zugriff auf JSON-Funktionen erhalten. Für unsere Zwecke verwenden wir die folgenden Funktionen:

  • json.loads(): Konvertiert einen JSON-String in Python-Daten; nimmt ein Argument, nämlich den String, den du in Python parsen möchtest.
  • json.dumps(): Konvertiert Python-Daten in ein JSON-String-Objekt; diese Funktion kann bis zu vier (4) Argumente annehmen, wobei nur das erste erforderlich ist. Sie sind:
    1. Python-Daten, die du in JSON umwandeln möchtest: Das können die folgenden Datentypen sein: Dictionaries, Listen, Tupel, String, Integer, Float, Boolean und None.
    2. indent: Anzahl der Leerzeichen, die du zu Beginn jedes Datenpunkts hinzufügen möchtest.
    3. separators: Dies sind die Zeichenfolgen, die zwischen und/oder am Ende von Datenpunkten erscheinen sollen.
    4. sort_keys: Sortiert die Dictionary-Schlüssel alphabetisch, wenn du einen Dictionary-Dateityp konvertierst.

Zu Beginn gehe zum goldenen X im Außenposten links und stelle dich an den Schreibtisch mit dem Memo. Verwende die Funktion read(), um die Informationen zu überprüfen, die du zur Bestätigung des Terminalstatus benötigst, und notiere sie. Gehe zum hellen X vor dem Terminal. Dort gibt es eine Konstante namens transmission. Verwende json.dumps(), um sie als JSON zu formatieren, damit wir sie konvertieren können, zum Beispiel so: transmission = json.dumps(transmission).

Erstelle ein Dictionary mit dem Namen load und weise ihm den Wert von json.loads() zu, wobei die Konstante transmission als Argument dient. Dadurch wird das JSON in Python konvertiert, sodass seine Informationen leicht zugänglich sind. Verwende die Funktion speak() mit den im Memo aufgeführten Schlüsseln und dem erstellten load-Dictionary. Zum Beispiel: player.speak(load["system"]). Führe dies für alle Schlüssel aus.

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

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

Gehe zum dunklen X über dem roten Teppich und verwende die Funktion read(), um die bereits im Terminal eingegebenen Daten zu überprüfen. Die Daten sind nicht im richtigen Format dargestellt. Um die Informationen korrekt zu speichern, müssen sie als JSON formatiert werden. Die Daten werden in einer Dictionary-Konstante namens red_data gespeichert. Erstelle eine Variable namens red_storage und weise ihr den Wert der Funktion json.dumps() zu.

Um die Daten zu formatieren, füge der Funktion die folgenden Argumente hinzu: Gib red_data an, um die Konstante in JSON zu konvertieren; füge indent hinzu und setze ihn auf 5, um den Text zu formatieren; füge separators hinzu und wähle ("- ", " = "), um diese Symbole am Ende jeder Zeile einzufügen. Die Zeile sollte wie folgt aussehen: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Verwende die vorgefertigte Funktion display() und übergebe den red_storage-JSON-String, um die formatierten Daten zu speichern und anzuzeigen.

Gehe zum dunklen X über dem blauen Teppich, stelle dich vor das Terminal und verwende die Funktion read(). Wie zuvor sind die Daten nicht richtig gespeichert und müssen formatiert sowie sortiert werden. Die Daten sind in einer Konstanten namens blue_data gespeichert. Erstelle eine Variable namens blue_storage und weise ihr den Wert der Funktion json.dumps() zu.

Als Argumente: Gib blue_data an, um die Konstante in JSON zu konvertieren; füge indent hinzu und setze ihn auf 4, um den Text zu formatieren; füge separators hinzu und wähle (".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 Funktion display() und übergebe den blue_storage-JSON-String, um die sortierten Daten zu speichern und anzuzeigen und den Level abzuschließen.

Codebuch