Lasiet, rakstiet un parsējiet JSON, izmantojot Python

Lasiet, rakstiet un parsējiet JSON, izmantojot Python

JSON ir viegls datu formāts datu apmaiņai, ko cilvēki var viegli nolasīt un rakstīt, kā arī viegli parsēt un ģenerēt iekārtas. Tas ir pilnīgs no valodas neatkarīgs teksta formāts. Lai strādātu ar JSON datiem, Python ir iebūvēta pakotne ar nosaukumu JSON.

JSON virknes piemērs

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

Sintakse JSON tiek uzskatīta par sintakses apakškopu JavaScript tostarp:

  • Vārda/vērtības pāri: Apzīmē datus, vārdam seko kols ( : ), un nosaukuma/vērtības pāri ir atdalīti ar komatu ( , ).
  • Cirtainas breketes: Tur priekšmetus.
  • Kvadrātiekavas: Turiet masīvus ar vērtībām, kas atdalītas ar komatu ( , ).

Atslēgām/nosaukumiem ir jābūt virknēm ar dubultpēdiņām, un vērtībām ir jābūt datu tipiem, kas ir viens no šiem:

JSON faila piemērs:

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

Python Parse JSON virkne

Zemāk esošajā kodā mēs pārveidosim JSON par Python objektu. Lai parsētu JSON virkni Python, vispirms importējam JSON moduli. Mums ir JSON virkne, kas saglabāta mainīgajā 'darbinieks' un mēs pārvēršam šo JSON virkni par Python objektu, izmantojot json.loads() JSON moduļa metode Python. Pēc tam mēs izdrukājam darbinieka vārdu, izmantojot atslēgu ‘vārds’ .

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

Izvade

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

Python nolasīja JSON failu

Pieņemsim, ka mums ir JSON fails, kas izskatās šādi.

pyhton-append-json1

Šeit mēs esam izmantojuši funkciju open (), lai lasītu JSON failu. Pēc tam fails tiek parsēts, izmantojot json.load() metodi, kas dod mums vārdnīcas nosaukumu datus.

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

Izvade:

python-read-json-output1

Pārvērtiet Python Dict par JSON

Tālāk esošajā kodā mēs konvertējam a Python vārdnīca uz JSON objektu, izmantojot json.dumps() JSON moduļa metode Python. Vispirms importējam JSON moduli un pēc tam izveidojam nelielu vārdnīcu ar dažiem atslēgu-vērtību pāriem un pēc tam nododam to json.dumps() metodei ar “indent=4”, lai pārvērstu šo Python vārdnīcu par JSON objektu. Tā kā 4. atkāpes vērtību esam piešķīruši, pirms katriem datiem ir četras atstarpes, kā redzams izvadē.

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

Izvade

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

Šāda veida Python objektus var pārveidot par JSON virknēm:

Python objekti un to ekvivalenta konvertēšana uz JSON:

Python

JSON ekvivalents

dikt

objektu

saraksts, kortežs

masīvs

str

virkne

int, peldēt

numuru

Taisnība

taisnība

Nepatiesi

viltus

Nav

null

JSON rakstīšana failā programmā Python

Mēs varam ierakstīt JSON failā, izmantojot JSON moduļa funkciju json.dump() un failu apstrādi Python. Tālāk esošajā programmā esam atvēruši failu ar nosaukumu sample.json rakstīšanas režīmā, izmantojot 'iekšā' . Fails tiks izveidots, ja tas neeksistē. Json.dump() pārveidos Python vārdnīcu par JSON virkni, un tā tiks saglabāta failā 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)>

Izvade:

python-json-write-to-file

Python Pretty Print JSON

Kad mēs konvertējam virkni uz JSON, dati ir mazāk lasāmā formātā. Lai padarītu to lasāmāku, mēs varam izmantot glītu drukāšanu, funkcijā json.dumps() nododot papildu argumentus, piemēram, ievilkums un šķirošanas_atslēgas kā izmantots zemāk esošajā kodā.

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

Izvade

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