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.
Č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:
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 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' }