logo

Läs, skriv och analysera JSON med Python

JSON är ett lättviktigt dataformat för datautbyte som enkelt kan läsas och skrivas av människor och enkelt kan analyseras och genereras av maskiner. Det är ett komplett språkoberoende textformat. För att arbeta med JSON-data har Python ett inbyggt paket som heter JSON.

Exempel på JSON-sträng

s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}'>

Syntaxen för JSON anses vara en delmängd av syntaxen för JavaScript inklusive följande:



  • Namn/värdepar: Representerar Data, namnet följs av ett kolon( : ), och Namn/Värde-paren separeras med ett kommatecken( , ).
  • Lockiga hängslen: Håller föremål.
  • Hakparentes: Håll arrayer med värden separerade med kommatecken ( , ).

Nycklar/namn måste vara strängar med dubbla citattecken och värden måste vara datatyper bland följande:

Exempel på JSON-fil:

 {  'employee': [  {  'id': '01',  'name': 'Amit',  'department': 'Sales'  },  {  'id': '04',  'name': 'sunil',  'department': 'HR'  }  ] }>

Python Parse JSON-sträng

I koden nedan kommer vi att konvertera JSON till ett Python-objekt. För att analysera JSON-strängen Python importerar vi först JSON-modulen. Vi har en JSON-sträng lagrad i en variabel 'anställd' och vi konverterar den här JSON-strängen till ett Python-objekt med hjälp av json.loads() metod för JSON-modulen i Python. Efter det skriver vi ut namnet på en anställd med nyckeln 'namn' .

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'>])>

>

maven installera

>

Produktion

{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin>

Python läste JSON-filen

Låt oss anta att vi har en JSON-fil som ser ut så här.

pyhton-append-json1

Här har vi använt funktionen open() för att läsa JSON-filen. Sedan tolkas filen med metoden json.load() som ger oss en ordbok med namnet 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()>

>

>

Produktion:

python-read-json-output1

Konvertera Python Dict till JSON

I koden nedan konverterar vi en Python ordbok till ett JSON-objekt med hjälp av json.dumps() metod för JSON-modulen i Python. Vi importerar först JSON-modulen och gör sedan en liten ordbok med några nyckel-värdepar och skickade den sedan till metoden json.dumps() med 'indent=4' för att konvertera denna Python-ordbok till ett JSON-objekt. Eftersom vi har gett värdet för indrag till 4 finns det fyra blanksteg före varje data som ses i utdata.

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)>

>

>

Produktion

{ 'id': '04', 'name': 'sunil', 'department': 'HR' }>

Följande typer av Python-objekt kan konverteras till JSON-strängar:

Python-objekt och deras motsvarande konvertering till JSON:

Pytonorm

JSON-motsvarighet

dikt

objekt

lista, tupel

array

str

sträng

int, flyta

siffra

Sann

Sann

Falsk

falsk

Ingen

null

Skriver JSON till en fil i Python

Vi kan skriva JSON till fil med funktionen json.dump() för JSON-modulen och filhantering i Python. I programmet nedan har vi öppnat en fil med namnet sample.json i skrivläge med hjälp av 'I' . Filen kommer att skapas om den inte finns. Json.dump() kommer att omvandla Python-ordboken till en JSON-sträng och den kommer att sparas 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)>

kali linux kommandon

>

>

Produktion:

python-json-skriv-till-fil

Python Pretty Print JSON

När vi konverterar en sträng till JSON är data i ett mindre läsbart format. För att göra det mer läsbart kan vi använda snygg utskrift genom att skicka ytterligare argument i funktionen json.dumps() som t.ex. indrag och sort_nycklar som används i koden nedan.

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>))>

>

>

Produktion

{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }>