Avanceret Python-udviklingskursus
Kapitel
>
Niveau

Serialiseringsmoduler
JSON Modul

Mål

Gå til servicestationen og sørg for, at data gemmes korrekt ved at bruge JSON-modulet til at formatere filer.

Der er en servicestation syd for anneksbygningen i det nye byggeområde, og hele dette område skal omdannes til dyrkning af afgrøder. Stationen har en række terminaler, der behandler data til den nye udvikling. Vi kan indtaste dataene manuelt, men det ville tage meget tid. Til håndtering af data kan vi bruge JSON, som står for JavaScript Object Notation; dette er et dataformat, der er uafhængigt af programmeringssprog og gemmer information i et letlæseligt format til lagring og overførsel.

For at bruge JSON med Python kan vi bruge import json, som giver os adgang til JSON-funktioner. Til vores formål vil vi bruge følgende funktioner:

  • json.loads(): Konverterer en JSON-streng til Python-data. Den tager ét argument, nemlig den streng, du ønsker at parse til Python.
  • json.dumps(): Konverterer Python-data til et JSON-strengobjekt. Denne funktion kan tage op til fire (4) argumenter; kun det første er påkrævet. De er som følger.
    1. Python-data, du ønsker at konvertere til JSON: de kan være af følgende datatyper: dictionaries, lister, tuples, string, integer, float, boolean og None.
    2. indent: antal mellemrum, du ønsker at tilføje ved begyndelsen af datapunktet
    3. separators: de tegn, du ønsker at have mellem og/eller i slutningen af datapunkter
    4. sort_keys: sorterer ordbogsnøgler alfabetisk, hvis du konverterer en dictionary

For at starte skal du gå til den gyldne X-markering i udposten til venstre og vende dig mod skrivebordet med memoet. Brug read()-funktionen til at bekræfte de oplysninger, der kræves for at bekræfte terminalens status, og noter dem. Gå til den lyse X-markering foran terminalen; der er en konstant med navnet transmission. Brug json.dumps() til at formatere den som JSON, så vi kan konvertere den, sådan her: transmission = json.dumps(transmission).

Opret et dictionary, der hedder load, og gem værdien fra json.loads() med konstanten transmission som argument. Dette vil konvertere JSON til Python, så informationen let kan tilgås. Brug speak()-funktionen med de nøgler, der er angivet i memoet, og brug det load-dictionary, du har oprettet. For eksempel: player.speak(load["system"]). Gør det samme for alle nøglerne.

Efter at have tjekket oplysningerne på terminalen skal du gå ned mod stationen, gå ind og gå til den lyse X-markering over det grønne tæppe. Tjek memoet med read()-funktionen, tjek og noter værdierne. I editoren er der et forudskrevet dictionary, der hedder profile; udfyld de manglende værdier med oplysningerne fra memoet.

Gå til den mørke X-markering over det grønne tæppe, vend dig mod terminalen, og opret en variabel, der hedder transfer, og gem værdien af json.dumps() med profile-dictionary som det eneste argument. På den måde konverterer vi dictionary'en til et JSON-strengobjekt. Brug den forudskrevne display()-funktion og tilføj transfer JSON for at gemme data på terminalen.

Gå til den mørke X-markering over det røde tæppe, og brug read()-funktionen for at bekræfte de data, der allerede er indtastet på terminalen. Dataene er ikke præsenteret i korrekt format; for at gemme dem korrekt skal de formateres i JSON. Dataene er gemt i en dictionary-konstant kaldet red_data. Opret en variabel, der hedder red_storage, og gem værdien af json.dumps()-funktionen.

For at formatere dataene skal du tilføje følgende argumenter til funktionen: tilføj red_data for at konvertere konstanten til JSON; tilføj indent og sæt den til 5 for at formatere teksten; tilføj separators, og tilføj ("- ", " = ") for at tilføje disse symboler i slutningen af hver linje. Linjen skal se sådan ud: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Brug den forudskrevne display(), og tilføj red_storage JSON-strengen for at gemme og vise de formaterede data.

Gå til den mørke X-markering over det blå tæppe, vend dig mod terminalen, og brug read()-funktionen. Ligesom før er dataene ikke gemt korrekt og skal formateres, men også sorteres. Dataene er gemt i en konstant kaldet blue_data. Opret en variabel, der hedder blue_storage, og gem værdien af json.dumps()-funktionen.

Til argumenter: tilføj blue_data for at konvertere konstanten til JSON; tilføj indent og sæt den til 4 for at formatere teksten; tilføj separators, og tilføj (".0", " = ") for at tilføje disse symboler i slutningen af hver linje. Ud over disse skal du tilføje argumentet sort_keys som det sidste argument og sætte det til True, sådan her: sort_keys=True. Brug den forudskrevne display(), og tilføj blue_storage JSON-strengen for at gemme og vise de sorterede data og fuldføre niveauet.

Kodebog