Les, skriv og analyser JSON ved hjelp av Python
JSON er et lett dataformat for datautveksling som enkelt kan leses og skrives av mennesker, og enkelt kan analyseres og genereres av maskiner. Det er et komplett språkuavhengig tekstformat. For å jobbe med JSON-data har Python en innebygd pakke kalt JSON.
Eksempel på JSON-streng
s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}' Syntaksen til JSON regnes som en delmengde av syntaksen til JavaScript inkludert følgende:
- Navn/verdi-par: Representerer data, navnet er etterfulgt av et kolon( : ), og navn/verdi-parene er atskilt med komma( , ).
- Krøllete regulering: Holder gjenstander.
- Firkantede parenteser: Hold matriser med verdier atskilt med komma ( , ).
Nøkler/navn må være strenger med doble anførselstegn, og verdier må være datatyper blant følgende:
Eksempel på JSON-fil:
{ 'employee': [ { 'id': '01', 'name': 'Amit', 'department': 'Sales' }, { 'id': '04', 'name': 'sunil', 'department': 'HR' } ] } Python Parse JSON-streng
I koden nedenfor skal vi konvertere JSON til et Python-objekt. For å analysere JSON-strengen Python importerer vi først JSON-modulen. Vi har en JSON-streng lagret i en variabel 'ansatt' og vi konverterer denne JSON-strengen til et Python-objekt ved hjelp av json.loads() metoden til JSON-modulen i Python. Deretter skriver vi ut navnet på en ansatt ved å bruke nøkkelen 'navn' .
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> print> (employee_dict)> print> (employee_dict[> 'name'> ])> |
Produksjon
{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin Python leste JSON-filen
La oss anta at vi har en JSON-fil som ser slik ut.
Her har vi brukt funksjonen open() for å lese JSON-filen. Deretter analyseres filen ved å bruke json.load()-metoden som gir oss en ordbok som heter data.
Python3
import> json> # Opening JSON file> f> => open> (> 'data.json'> ,)> # returns JSON object as> # a dictionary> data> => json.load(f)> # Iterating through the json> # list> for> i> in> data[> 'emp_details'> ]:> > print> (i)> # Closing file> f.close()> |
Produksjon:
Konverter Python Dict til JSON
I koden nedenfor konverterer vi en Python-ordbok til et JSON-objekt ved hjelp av json.dumps() metoden til JSON-modulen i Python. Vi importerer først JSON-modulen og lager deretter en liten ordbok med noen nøkkelverdi-par og sendte den deretter inn i json.dumps()-metoden med 'indent=4' for å konvertere denne Python-ordboken til et JSON-objekt. Ettersom vi har gitt verdien av innrykk til 4, er det fire mellomrom før hver data, som vist i utdataene.
Python3
# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary> => {> > 'id'> :> '04'> ,> > 'name'> :> 'sunil'> ,> > 'department'> :> 'HR'> }> > # Serializing json> json_object> => json.dumps(dictionary, indent> => 4> )> print> (json_object)> |
Produksjon
{ 'id': '04', 'name': 'sunil', 'department': 'HR' } Følgende typer Python-objekter kan konverteres til JSON-strenger:
Python-objekter og deres tilsvarende konvertering til JSON:
| Python | JSON-ekvivalent |
|---|---|
| dikt | gjenstand |
| liste, tuppel | array |
| str | streng |
| int, flyte | Antall |
| ekte | ekte |
| Falsk | falsk |
| Ingen | null |
Skriver JSON til en fil i Python
Vi kan skrive JSON til fil ved å bruke json.dump()-funksjonen til JSON-modulen og filhåndtering i Python. I programmet nedenfor har vi åpnet en fil kalt sample.json i skrivemodus ved hjelp av 'I' . Filen vil bli opprettet hvis den ikke eksisterer. Json.dump() vil transformere Python-ordboken til en JSON-streng og den vil bli lagret i filen sample.json.
Python3
# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary> => {> > 'name'> :> 'sathiyajith'> ,> > 'rollno'> :> 56> ,> > 'cgpa'> :> 8.6> ,> > 'phonenumber'> :> '9976770500'> }> > with> open> (> 'sample.json'> ,> 'w'> ) as outfile:> > json.dump(dictionary, outfile)> |
Produksjon:
Python Pretty Print JSON
Når vi konverterer en streng til JSON, er dataene i et mindre lesbart format. For å gjøre det mer lesbart kan vi bruke pen utskrift ved å sende flere argumenter i funksjonen json.dumps() som f.eks. innrykk og sorteringsnøkler som brukt i koden nedenfor.
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> # Pretty Printing JSON string back> print> (json.dumps(employee_dict, indent> => 4> , sort_keys> => True> ))> |
Produksjon
{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }