Avansert Python-utviklingskurs
Kapittel
>
Nivå
Serialiseringsmoduler
JSON-modul
Mål
Gå til servicestasjonen og sørg for at data er lagret riktig ved å bruke JSON-modulen for å formatere filer.
Det er en servicestasjon sør for anneksbygningen i det nye byggeområdet. Hele dette området skal ombygges for å plante avlinger. Stasjonen har en rekke terminaler som behandler data for den nye utviklingen. Vi kan skrive dataene manuelt, men det vil ta 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 i Python kan vi bruke import json, som gir oss tilgang til JSON-funksjoner. Til våre formål vil vi bruke følgende funksjoner:
json.loads(): Konverterer en JSON-streng til Python-data. Tar ett argument, som er strengen du ønsker å analysere til Python.json.dumps(): Konverterer Python-data til en JSON-streng. Denne funksjonen kan ta opptil fire (4) argumenter, hvor kun det første er obligatorisk. De er som følger.- Python-data du ønsker å konvertere til JSON: Dette kan være av følgende datatyper: ordbøker, lister, tupler, strenger, heltall, flyttall, boolske verdier og None.
indent: Antall mellomrom du vil legge til i starten av hvert datapunkt.separators: Disse er tegnene du ønsker skal vises mellom og/eller på slutten av datapunktene.sort_keys: Sorterer ordboknøklene alfabetisk hvis du konverterer en ordbok.
For å begynne, gå til det gylne X-merket på utposten til venstre og vend deg mot pulten med notatet. Bruk funksjonen read() for å verifisere informasjonen som kreves for å bekrefte terminalens status, og noter den. Gå til det lyse X-merket foran terminalen. Det finnes en konstant som heter transmission; bruk json.dumps() for å formatere den som JSON slik at vi kan konvertere den, for eksempel: transmission = json.dumps(transmission).
Opprett en ordbok med navnet load og lagre verdien av json.loads() med konstanten transmission som argument. Dette vil konvertere JSON-en til Python slik at informasjonen lett kan aksesseres. Bruk funksjonen speak() med nøklene som er angitt i notatet, og bruk load-ordboken du opprettet. For eksempel: player.speak(load["system"]), og gjør dette for alle nøklene.
Etter å ha sjekket informasjonen på terminalen, gå ned mot stasjonen, gå inn og sett kursen mot det lyse X-merket på det grønne teppet. Sjekk notatet ved hjelp av funksjonen read(), undersøk og noter verdiene. I redigeringsvinduet finnes det en forhåndsskrevet ordbok kalt profile; fyll ut de manglende verdiene med informasjonen fra notatet.
Gå til det mørke X-merket på det grønne teppet, still deg foran terminalen og opprett en variabel kalt transfer. Lagre resultatet av json.dumps() og bruk ordboken profile som eneste argument. På denne måten konverterer vi ordboken til et JSON-strengobjekt. Bruk den forhåndsskrevne funksjonen display() og legg til transfer-JSON-en for å lagre dataene i terminalen.
Gå til det mørke X-merket på det røde teppet og bruk funksjonen read() for å verifisere dataene som allerede er registrert i terminalen. Dataene er ikke presentert i riktig format; for å lagre informasjonen korrekt må dataene formateres som JSON. Dataene er lagret i en ordbokskonstant kalt red_data. Opprett en variabel kalt red_storage og lagre resultatet av funksjonen json.dumps().
For å formatere dataene, legg til følgende argumenter i 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 spesifiser ("- ", " = ") 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 funksjonen display() og legg til red_storage-JSON-strengen for å lagre og vise de formaterte dataene.
Gå til det mørke X-merket på det blå teppet, still deg foran terminalen og bruk funksjonen read(). Som tidligere er ikke dataene lagret riktig og må både formateres og sorteres. Dataene er lagret i en konstant kalt blue_data. Opprett en variabel kalt blue_storage og lagre resultatet av funksjonen json.dumps().
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 spesifiser ( ".0", " = " ) for å legge til disse symbolene på slutten av hver linje. I tillegg til disse, legg til argumentet sort_keys som det siste argumentet og sett det til True, slik: sort_keys=True. Bruk den forhåndsskrevne funksjonen display() og legg til blue_storage-JSON-strengen for å lagre og vise de sorterte dataene og fullføre nivået.