Hvordan lese og skrive JSON -filer i Python

Hvordan lese og skrive JSON -filer i Python
Denne artikkelen vil forklare hvordan du håndterer JSON -filer og data i Python -programmeringsspråk. Python kommer med en innebygd “JSON” -modul som gjør håndtering av JSON-data enkel og grei.

Om JSON

JSON (JavaScript Object Notation) er et filformat og datalagringsstandard som bruker nøkkelverdipar for å 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 må lagre, hente og utveksle data. De fleste programmeringsspråk inkluderer biblioteker for å analysere og skrive JSON -data som standard, og JSON er et programmeringsspråk agnostisk dataformat. Verdier som er lagret i en JSON -fil eller nyttelast inneholder vanligvis strenger, tall og serialiserbare datatyper som lister (Arrays).

JSON og Python Dictionaries

JSON -data i Python konverteres til et ordboksobjekt ved å bruke "belastning" -metode. Det ser ofte at noen mennesker likestiller JSON -data og en Python -ordbok, ettersom syntaksen for å definere begge er nesten den samme. Imidlertid er JSON -data ikke annet enn en tekststreng strukturert i en stiv syntaks mens en Python -ordbok er et datastrukturobjekt som er lagret i minnet. Hvis du vil lagre ordboksdata i en tekstfil eller sende dem til et annet ikke-Python-program, må du først konvertere det til en tekststreng (byte). Denne dumpede / konverterte tekststrengen er definert i JSons standardsyntaks, og prosessen med å konvertere en Python -ordbok til en JSON -kompatibel streng kalles serialisering.

Lesing og dumping 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 ”-filen inneholder følgende data:

"kodenavn": "eoan ermine", "versjon": "Ubuntu 19.10 "

Å lese testen.JSON -fil i Python, du kan bruke koden nedenfor:

Importer JSON
med åpen ("test.json ") som f:
data = json.belastning (f)
dump = json.dumper (data)
Print (data)
print (type (data))
trykk (dump)
Print (Type (Dump))

Den første linjen i ovennevnte kode importerer JSON -modulen. I neste linje brukes "med åpen" for å trygt lese filinnholdet. Innenfor "med åpen" -blokk, "JSON.Last "-metode brukes til å lese og lagre filinnhold i" data "-variabelen. Data lastet i forrige trinn konverteres tilbake til JSON -streng ved hjelp av “JSON.Dump ”-metode. Å kjøre koden over vil vise følgende utdata:

'kodenavn': 'eoan ermine', 'versjon': 'Ubuntu 19.10 '

"kodenavn": "eoan ermine", "versjon": "Ubuntu 19.10 "

Legg merke til i utgangen over at “JSON.Last "-metode leser rå JSON -data i en Python -ordbok mens“ JSON.Dumps ”-metoder konverterer en ordbok til en streng som er kompatibel med JSON -struktur. Når et JSON-objekt er blitt konvertert til et Python Dictionary-objekt, kan du bruke innebygde Python-ordbokmetoder for å håndtere dataene. Eksemplet over er ganske grunnleggende og inkluderer ikke matriser i JSON -data eller nestede verdier. Innenfor Python kan du imidlertid håndtere disse verdiene som alle andre nestede ordbøker og lister.

Sortering og ganske utskrift av JSON -data

“Json.Dump ”-metode støtter noen valgfrie parametere for sorteringstaster og ganske utskrift av utgangen for forbedret lesbarhet.

Importer JSON
med åpen ("test.json ") som f:
data = json.belastning (f)
dump = json.Dumper (data, sort_keys = true, innrykk = 4)
trykk (dump)

Koden over vil vise følgende utgang:


"kodenavn": "eoan ermine",
"Versjon": "Ubuntu 19.10 "

Konverteringer av datatype

Listen nedenfor illustrerer hvordan JSON -verdiene blir konvertert til Python -objekter og omvendt.

JSON Python
streng str
Antall int eller float
sant, falsk Sant, falsk
null Ingen
Array liste
gjenstand Dict

JSON.Verktøy -kommandolinjemodul

Python inkluderer et fint kommandolinjeverktøy “JSON.verktøy ”som kan brukes til å validere og ganske skrive ut JSON -strenger og filer.

$ ekko '"kodenavn": "eoan ermine", "versjon": "Ubuntu 19.10 " '| python3 -m json.verktøy

Å kjøre kommandoen over vil vise deg følgende utdata:


"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 ønsket verdier:

$ python3 -m json.verktøy in_file out_file

Annet enn ganske utskrift, sortering og validering av JSON -data, JSON.Verktøyet 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.