Avansert Pythonutviklingskurs
Kapittel
>
Nivå
Serialiseringsmoduler
JSON-modul
Mål
Gå til servicesentralen og sørg for at data er riktig lagret ved å bruke JSON-modulen for å formatere filer.
Det er en servicesentral sør for anneksbygningen i det nye byggeområdet, og hele området skal utvikles på nytt for å dyrke avlinger. Stasjonen har et utvalg terminaler som behandler data for den nye utviklingen. Vi kunne skrive dataen manuelt, men det ville tatt mye tid. For å håndtere data kan vi bruke JSON, som står for JavaScript Object Notation; dette er et dataformat som er uavhengig av programmeringsspråk og lagrer informasjon på en lettleselig måte for datalagring og overføring.
For å bruke JSON med python kan vi bruke import json som gir oss tilgang til JSON-funksjoner. For våre formål vil vi bruke følgende funksjoner:
json.loads(): Konverterer en JSON-streng til Python-data. Tar ett argument, nemlig strengen du ønsker å parse til Python.json.dumps(): Konverterer Python-data til en JSON-streng. Denne funksjonen kan ta opptil fire (4) argumenter, der bare det første er påkrevd for å bruke funksjonen. De er som følger:- Python-dataen du ønsker å konvertere til JSON: Den kan være av følgende datatyper: dictionaries, lister, tuples, string, integer, float, boolean, og None.
indent: Antall mellomrom du ønsker å legge til i starten av datapunktet.separators: De delene du ønsker skal vises mellom og/eller på slutten av datapunktene.sort_keys: Sorterer dictionary-nøkler alfabetisk dersom du konverterer en dictionary.
For å starte, gå til gull X-merket i utkikksposten til venstre og vend deg mot pulten med notatet. Bruk read()-funksjonen for å verifisere informasjonen som kreves for å bekrefte terminalens status, og noter den. Gå til det lyse X-merket foran terminalen. Der finnes en konstant kalt transmission. Bruk json.dumps() for å formatere den som en json slik at vi kan konvertere den, slik: transmission = json.dumps(transmission) .
Lag en dictionary ved navn load og lagre verdien av json.loads() med transmission-konstanten som argument. Dette vil konvertere JSON til Python slik at informasjonen enkelt kan nås. Bruk speak()-funksjonen med nøklene som er beskrevet i notatet, og bruk den load-dictionaryen du opprettet. For eksempel: player.speak(load["system"]), og gjør dette for alle nøklene.
Etter at du har sjekket informasjonen på terminalen, gå ned mot stasjonen, gå inn og gå mot det lyse X-merket over det grønne teppet. Sjekk notatet ved hjelp av read()-funksjonen, se gjennom og noter verdiene. I editoren finnes en forhåndsskrevet dictionary kalt profile; fyll ut de manglende verdiene med informasjonen fra notatet.
Gå til det mørke X-merket over det grønne teppet, vend deg mot terminalen og lag en variabel kalt transfer. Lagre verdien av json.dumps() med profile-dictionaryen som eneste argument. Ved å gjøre dette konverterer vi dictionaryen til en JSON-streng. Bruk den forhåndsskrevne display()-funksjonen og legg til transfer JSON for å lagre dataene i terminalen.
Gå til det mørke X-merket over det røde teppet og bruk read()-funksjonen for å verifisere dataene som allerede er lagt inn i terminalen. Dataene er ikke presentert i et riktig format; for at informasjonen skal lagres korrekt, må den lagres og formateres som en JSON. Dataene er lagret i en dictionary-konstant kalt red_data. Opprett en variabel kalt red_storage og lagre verdien av json.dumps()-funksjonen.
For å formatere dataene, legg til følgende argumenter til funksjonen: legg til red_data for å konvertere konstanten til JSON, legg til indent og sett den til 5 for å formatere teksten, legg til separators og angi ("- ", " = ") for å legge til disse symbolene på slutten av hver linje. Linjen skal se slik ut: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Bruk den forhåndsskrevne display()-funksjonen og legg til red_storage JSON-strengen for å lagre og vise de formaterte dataene.
Gå til det mørke X-merket over det blå teppet, vend deg mot terminalen og bruk read()-funksjonen. Som før er dataene ikke lagret riktig og må formateres, men også sorteres. Dataene er lagret i en konstant kalt blue_data. Opprett en variabel kalt blue_storage og lagre verdien av json.dumps()-funksjonen.
For argumentene: legg til blue_data for å konvertere konstanten til JSON, legg til indent og sett den til 4 for å formatere teksten, legg til separators og angi (".0", " = ") for å legge til disse symbolene på slutten av hver linje. I tillegg, legg til argumentet sort_keys som det siste argumentet og sett det til True, slik: sort_keys=True. Bruk den forhåndsskrevne display()-funksjonen og legg til blue_storage JSON-strengen for å lagre og vise de sorterte dataene, og fullfør nivået.