Avanceret Python Udviklingskursus
Kapitel
>
Niveau
Serialiseringsmoduler
JSON Modul
Mål
Gå til servicestationen og sørg for, at data er korrekt lagret ved at bruge JSON-modulet til at formatere filer.
Der er en servicestation syd for anneksbygningen i det nye byggeområde, dette område skal omdannes til landbrugsjord til afgrøder. Stationen har en række terminaler, der behandler data til den nye udvikling, vi kan arbejde med at skrive dataene manuelt, men det ville tage lang tid. Til håndtering af data kan vi bruge JSON, som står for JavaScript Object Notation. Dette er et dataformat, som er uafhængigt af programmeringssprog og gemmer information på en let læselig måde til datalagring og transmission.
For at bruge JSON i Python kan vi bruge import json, hvilket giver os adgang til JSON-funktionerne, og til vores formål vil vi benytte følgende funktioner:
json.loads(): Konverterer en JSON-streng til Python-data, og tager ét argument, nemlig den streng du ønsker at fortolke til Python.json.dumps(): Konverterer Python-data til en JSON-streng, denne funktion kan tage op til fire (4) argumenter, hvor kun det første er et krav for at anvende funktionen. De er som følger.- Python-data, du ønsker at konvertere til JSON: de kan være af følgende datatyper: ordbøger, lister, tuples, streng, heltal, float, boolean og None datatyper.
indent: antallet af mellemrum, du ønsker at tilføje i starten af datapunktetseparators: disse er de dele, du ønsker skal vises mellem og/eller i slutningen af datapunkterne.sort_keys: sorterer ordbogens nøgler alfabetisk, hvis du konverterer en ordbogsfiltype.
For at begynde, gå til det gyldne X-mærke i forlantsstationen til venstre og vend dig mod skrivebordet med notatet. Brug read() funktionen til at verificere de oplysninger, der er nødvendige for at bekræfte status på terminalen, og notér dem. Gå til det lyse X-mærke foran terminalen, der er en konstant ved navn transmission, brug json.dumps() til at formatere den som en JSON, så vi kan konvertere den, således: transmission = json.dumps(transmission) .
Opret en ordbog ved navn load og gem værdien af json.loads() med transmission konstanten som argument. Dette konverterer JSON'en til Python, så oplysningerne nemt kan tilgås. Brug speak() funktionen med de nøgler, der er beskrevet i notatet, og brug den load ordbog, du oprettede. For eksempel: player.speak(load["system"]), gør dette for alle nøglerne.
Efter at have kontrolleret oplysningerne på terminalen, gå ned mod stationen, gå ind og bevæg dig til det lyse X-mærke over den grønne tæppe. Tjek notatet ved hjælp af read() funktionen, se værdierne og notér dem. I editoren er der en forudskrevet ordbog ved navn profile, udfyld de manglende værdier med oplysningerne fra notatet.
Gå til det mørke X-mærke over den grønne tæppe, vend dig mod terminalen og opret en variabel ved navn transfer og gem værdien af json.dumps() med ordbogen profile som det eneste argument. Dermed konverterer vi ordbogen til en JSON-streng. Brug den forudskrevne display() funktion og tilføj den transfer JSON for at gemme dataene i terminalen.
Gå til det mørke X-mærke over den røde tæppe og brug read() funktionen for at verificere de data, der allerede er indtastet i terminalen. Dataene er ikke præsenteret i korrekt format, for at gemme oplysningerne korrekt skal de lagres og formateres i en JSON. Dataene er gemt i en ordbogskonstant kaldet red_data, opret en variabel ved navn red_storage og gem værdien af json.dumps() funktionen.
For at formatere dataene, tilføj 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() funktion og tilføj den red_storage JSON-streng for at gemme og vise de formaterede data.
Gå til det mørke X-mærke over den 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 ved navn blue_data, opret en variabel ved navn blue_storage og gem værdien af json.dumps() funktionen.
For 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. Derudover skal du også tilføje argumentet sort_keys som det sidste argument og sætte det til True, således: sort_keys=True . Brug den forudskrevne display() funktion og tilføj den blue_storage JSON-streng for at gemme og vise de sorterede data og fuldfør niveauet.