Skaitykite, rašykite ir analizuokite JSON naudodami Python

Skaitykite, rašykite ir analizuokite JSON naudodami Python

JSON yra lengvas duomenų keitimosi duomenimis formatas, kurį žmonės gali lengvai perskaityti ir įrašyti, o mašinos lengvai išanalizuoti ir generuoti. Tai visiškai nuo kalbos nepriklausomas teksto formatas. Norėdami dirbti su JSON duomenimis, Python turi integruotą paketą, pavadintą JSON.

JSON eilutės pavyzdys

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

Sintaksė JSON yra laikomas sintaksės poaibiu JavaScript įskaitant:

  • Pavadinimo / reikšmės poros: Reiškia duomenis, po pavadinimo rašomas dvitaškis ( : ), o pavadinimo/vertės poros atskiriamos kableliu ( , ).
  • Garbanoti breketai: Laiko daiktus.
  • Laužtiniai skliaustai: Laikykite masyvus, kurių reikšmės atskirtos kableliu ( , ).

Raktai / pavadinimas turi būti eilutės su dvigubomis kabutėmis, o reikšmės turi būti duomenų tipai iš šių:

JSON failo pavyzdys:

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

Python Parse JSON eilutė

Žemiau pateiktame kode JSON konvertuosime į Python objektą. Norėdami išanalizuoti JSON eilutę Python, pirmiausia importuojame JSON modulį. Mes turime JSON eilutę, saugomą kintamajame 'darbuotojas' ir mes konvertuojame šią JSON eilutę į Python objektą naudodami json.loads() JSON modulio metodas Python. Po to atspausdiname darbuotojo vardą, naudodami raktą „vardas“ .

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

Išvestis

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

Python nuskaito JSON failą

Tarkime, kad turime JSON failą, kuris atrodo taip.

pyhton-append-json1

Čia mes panaudojome funkciją open () norėdami nuskaityti JSON failą. Tada failas išanalizuojamas naudojant json.load() metodą, kuris suteikia mums žodyne pavadintus duomenis.

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

Išvestis:

python-read-json-output1

Konvertuokite Python Dict į JSON

Žemiau esančiame kode mes konvertuojame a Python žodynas į JSON objektą naudojant json.dumps() JSON modulio metodas Python. Pirmiausia importuojame JSON modulį, tada sukuriame nedidelį žodyną su kai kuriomis raktų ir reikšmių poromis, o tada perduodame jį į json.dumps() metodą su „indent=4“, kad šis Python žodynas būtų konvertuojamas į JSON objektą. Kadangi įtraukos reikšmę suteikėme 4, prieš kiekvieną duomenis, kaip matyti išvestyje, yra keturi tarpai.

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

Išvestis

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

Šių tipų Python objektus galima konvertuoti į JSON eilutes:

Python objektai ir jų ekvivalentas konvertavimas į JSON:

Python

JSON ekvivalentas

diktatas

objektas

sąrašas, eilė

masyvas

str

styga

int, plūduriuoti

numerį

Tiesa

tiesa

Netiesa

klaidinga

Nė vienas

nulinis

JSON įrašymas į failą Python

JSON galime įrašyti į failą naudodami JSON modulio funkciją json.dump() ir failų tvarkymą Python. Toliau pateiktoje programoje atidarėme failą, pavadintą sample.json, rašymo režimu naudodami 'į' . Failas bus sukurtas, jei jo nėra. Json.dump() pakeis Python žodyną į JSON eilutę ir bus išsaugota faile 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)>

Išvestis:

python-json-write-to-file

Python Pretty Print JSON

Kai konvertuojame eilutę į JSON, duomenys yra mažiau skaitomo formato. Kad būtų lengviau skaityti, galime naudoti gražų spausdinimą, funkcijoje json.dumps() perduodami papildomus argumentus, pvz. įtrauka ir rūšiavimo_raktai kaip naudojamas toliau pateiktame kode.

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

Išvestis

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