Om JSON
JSON (JavaScript Object Notation) er et filformat og datalagringsstandard som bruker nøkkelverdipar til å lagre og utveksle data. Det er det mest brukte datautvekslingsformatet, ofte sett i RESTful APIer, lette databaser, konfigurasjonsfiler og annen offline eller online programvare som trenger å lagre, hente og utveksle data. De fleste programmeringsspråk inkluderer biblioteker for å analysere og skrive JSON-data som standard, og JSON er et agnostisk dataformat for programmeringsspråk. Verdier som er lagret i en JSON-fil eller nyttelast inneholder vanligvis strenger, tall og seriøse datatyper som lister (arrays).
JSON og Python Dictionaries
JSON-data i python konverteres til et ordbokobjekt ved hjelp av "last" -metoden. Det er ofte sett at noen mennesker sidestiller json-data og en pythonordbok, ettersom syntaksen for å definere dem begge er nesten den samme. Json-data er imidlertid ingenting annet enn en tekststreng strukturert i en stiv syntaks mens en pythonordbok er et datastrukturobjekt lagret i minnet. Hvis du vil lagre ordboksdata i en tekstfil eller sende dem til et annet program som ikke er python, må du først konvertere det til en tekststreng (byte). Denne dumpede / konverterte tekststrengen er definert i JSONs standard syntaks, og prosessen med å konvertere en pythonordbok til en json-kompatibel streng kalles serialisering.
Lese og dumpe JSON-data i Python
JSON-data kan hentes som et svar fra en server, leses fra fil, skiver fra URL-spørringsparametere og så videre. Denne artikkelen vil hovedsakelig fokusere på å lese json-data fra en lokalt lagret fil. La oss anta at en “test.json ”-fil inneholder følgende data:
"kodenavn": "Eoan Ermine", "versjon": "Ubuntu 19.10 "Å lese testen.json-fil i python, kan du bruke koden nedenfor:
importere jsonmed åpen ("test.json ") som f:
data = json.belastning (f)
dump = json.dumper (data)
skriv ut (data)
skriv ut (type (data))
skriv ut (dump)
skriv ut (type (dump))
Den første linjen i koden ovenfor importerer json-modulen. I neste linje brukes “med åpen” til å lese filinnholdet trygt. Innenfor "med åpen" blokken, "json.load ”-metoden brukes til å lese og lagre filinnhold i“ data ”-variabelen. Data lastet i forrige trinn konverteres tilbake til json-streng ved hjelp av "json.dump ”-metoden. Å kjøre koden ovenfor viser følgende utdata:
'kodenavn': 'Eoan Ermine', 'versjon': 'Ubuntu 19.10 '"kodenavn": "Eoan Ermine", "versjon": "Ubuntu 19.10 "
Legg merke til i utgangen ovenfor at “json.last "-metoden leser rå json-data i en pythonordbok mens" json.dumps ”-metoder konverterer en ordbok til en streng som er kompatibel med JSON-strukturen. Når et JSON-objekt er konvertert til et pythonordbokobjekt, kan du bruke innebygde pythonordbokmetoder for å håndtere dataene. Eksemplet ovenfor er ganske grunnleggende og inkluderer ikke matriser i JSON-data eller nestede verdier. Men innen python kan du håndtere disse verdiene som alle andre nestede ordbøker og lister.
Sortering og pen utskrift av JSON-data
“Json.dump ”-metoden støtter noen valgfrie parametere for sortering av nøkler og pen utskrift av utdata for bedre lesbarhet.
importere jsonmed åpen ("test.json ") som f:
data = json.belastning (f)
dump = json.dump (data, sort_keys = True, indent = 4)
skriv ut (dump)
Koden ovenfor viser følgende utdata:
"kodenavn": "Eoan Ermine",
"versjon": "Ubuntu 19.10 "
Datatypekonverteringer
Listen nedenfor illustrerer hvordan JSON-verdier konverteres til pythonobjekter og omvendt.
JSON | Python |
streng | str |
Nummer | int eller flyte |
sant, usant | Sant, usant |
null | Ingen |
array | liste |
gjenstand | diktere |
Json.verktøy Kommandolinjemodul
Python inkluderer et fint kommandolinjeverktøy “json.verktøy ”som kan brukes til å validere og pent skrive ut JSON-strenger og filer.
$ echo '"kodenavn": "Eoan Ermine", "version": "Ubuntu 19.10 " '| python3 -m json.verktøyÅ kjøre kommandoen ovenfor viser følgende utgang:
"kodenavn": "Eoan Ermine",
"versjon": "Ubuntu 19.10 "
Du kan også bruke json.verktøy med JSON-filer. Erstatt "in_file" og "out_file" i kommandoen nedenfor med dine ønskede verdier:
$ python3 -m json.verktøy i_fil ut_filAnnet enn ganske utskrift, sortering og validering av JSON-data, json.verktøy gjør ikke noe annet. Så hvis du vil manipulere noen JSON-data, må du skrive din egen tilpassede kode ved hjelp av den innebygde JSON-modulen.