Branje, pisanje in razčlenjevanje JSON z uporabo Pythona

Branje, pisanje in razčlenjevanje JSON z uporabo Pythona

JSON je lahek podatkovni format za izmenjavo podatkov, ki ga lahko ljudje preprosto berejo in pišejo, stroji pa ga zlahka razčlenijo in ustvarijo. Je popoln besedilni format, neodvisen od jezika. Za delo s podatki JSON ima Python vgrajen paket, imenovan JSON.

Primer niza JSON

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

Sintaksa JSON velja za podmnožico sintakse JavaScript vključno z naslednjim:

  • Pari ime/vrednost: Predstavlja podatke, imenu sledi dvopičje ( : ), pari ime/vrednost pa so ločeni z vejico ( , ).
  • Zavit oklepaj: Drži predmete.
  • Oglati oklepaji: Zadrži nize z vrednostmi, ločenimi z vejico ( , ).

Ključi/Ime morajo biti nizi z dvojnimi narekovaji, vrednosti pa morajo biti vrste podatkov med naslednjim:

Primer datoteke JSON:

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

Python razčleni niz JSON

V spodnji kodi bomo JSON pretvorili v objekt Python. Za razčlenitev niza JSON v Pythonu najprej uvozimo modul JSON. V spremenljivki imamo shranjen niz JSON 'zaposleni' in ta niz JSON pretvorimo v objekt Python z uporabo json.loads() metoda modula JSON v Pythonu. Nato s ključem 'ime' izpišemo ime zaposlenega. .

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

Izhod

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

Python je prebral datoteko JSON

Recimo, da imamo datoteko JSON, ki je videti takole.

pyhton-priloži-json1

Tukaj smo uporabili funkcijo open() za branje datoteke JSON. Nato je datoteka razčlenjena z metodo json.load(), ki nam da slovar z imenom 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()>

Izhod:

python-read-json-output1

Pretvorite Python Dict v JSON

V spodnji kodi pretvarjamo a Slovar Python v objekt JSON z uporabo json.dumps() metoda modula JSON v Pythonu. Najprej uvozimo modul JSON in nato naredimo majhen slovar z nekaj pari ključ-vrednost in ga nato posredujemo metodi json.dumps() z 'indent=4', da pretvorimo ta slovar Python v objekt JSON. Ker smo vrednost zamika dali 4, so pred vsakim podatkom štirje presledki, kot je razvidno iz izhoda.

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

Izhod

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

Naslednje vrste predmetov Python je mogoče pretvoriti v nize JSON:

Objekti Python in njihova enakovredna pretvorba v JSON:

Python

Ekvivalent JSON

dikt

predmet

seznam, tuple

niz

str

vrvica

int, float

število

Prav

prav

False

lažno

Noben

nič

Pisanje JSON v datoteko v Pythonu

JSON lahko zapišemo v datoteko s funkcijo json.dump() modula JSON in obdelavo datotek v Pythonu. V spodnjem programu smo odprli datoteko z imenom sample.json v načinu pisanja z uporabo 'V' . Datoteka bo ustvarjena, če ne obstaja. Json.dump() bo spremenil slovar Python v niz JSON in bo shranjen v datoteki 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)>

Izhod:

python-json-pisati v datoteko

Python Pretty Print JSON

Ko pretvorimo niz v JSON, so podatki v manj berljivi obliki. Da bi bilo bolj berljivo, lahko uporabimo lepo tiskanje s posredovanjem dodatnih argumentov v funkciji json.dumps(), kot je npr. zamik in razvrsti_ključe kot je uporabljeno v spodnji kodi.

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

Izhod

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