logo

Lue, kirjoita ja jäsennä JSONia Pythonilla

JSON on kevyt datamuoto tiedonvaihtoon, jota ihmiset voivat helposti lukea ja kirjoittaa ja koneiden jäsentää ja luoda helposti. Se on täysin kielestä riippumaton tekstimuoto. Pythonilla on JSON-niminen paketti JSON-tietojen käsittelemiseksi.

Esimerkki JSON-merkkijonosta

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

Kohteen syntaksi JSON pidetään syntaksin osajoukona JavaScript mukaan lukien seuraavat:



  • Nimi/arvo-parit: Edustaa dataa, nimen perässä on kaksoispiste ( : ), ja Nimi/arvo-parit erotetaan pilkulla( , ).
  • Aaltosulkeet: Pitää esineitä.
  • Hakasulkeet: Säilytä taulukoita, joiden arvot on erotettu pilkulla ( , ).

Avainten/Nimen on oltava merkkijonoja lainausmerkeillä ja arvojen on oltava tietotyyppejä seuraavista:

Esimerkki JSON-tiedostosta:

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

Python Parse JSON-merkkijono

Alla olevassa koodissa aiomme muuntaa JSONin Python-objektiksi. JSON-merkkijonon Python jäsentämiseksi tuomme ensin JSON-moduulin. Meillä on JSON-merkkijono, joka on tallennettu muuttujaan 'työntekijä' ja muunnamme tämän JSON-merkkijonon Python-objektiksi käyttämällä json.loads() JSON-moduulin menetelmä Pythonissa. Tämän jälkeen tulostamme työntekijän nimen avaimella 'nimi' .

Python 3




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

>

taulukon pituus java

>

Lähtö

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

Python lukee JSON-tiedoston

Oletetaan, että meillä on JSON-tiedosto, joka näyttää tältä.

pyhton-append-json1

Tässä olemme käyttäneet open()-funktiota JSON-tiedoston lukemiseen. Sitten tiedosto jäsennetään json.load()-menetelmällä, joka antaa meille sanakirjan nimeltä data.

Python 3




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

>

>

Lähtö:

python-read-json-lähtö1

Muunna Python Dict JSONiksi

Alla olevassa koodissa muunnamme a Python-sanakirja JSON-objektiin käyttämällä json.dumps() JSON-moduulin menetelmä Pythonissa. Tuomme ensin JSON-moduulin ja teemme sitten pienen sanakirjan, jossa on joitain avain-arvopareja, ja siirrämme sen sitten json.dumps()-menetelmään, jossa on indent=4, jotta tämä Python-sanakirja muunnetaan JSON-objektiksi. Koska olemme antaneet sisennyksen arvon 4:lle, jokaisen datan edessä on neljä välilyöntiä, kuten tulosteessa näkyy.

Python 3




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

>

>

Lähtö

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

Seuraavan tyyppisiä Python-objekteja voidaan muuntaa JSON-merkkijonoiksi:

Python-objektit ja niitä vastaava muunnos JSON-muotoon:

Python

JSON-vastaava

sanele

esine

lista, tuple

joukko

str

merkkijono

int, kellua

määrä

Totta

totta

Väärä

väärä

poliisikomissaari

Ei mitään

tyhjä

JSONin kirjoittaminen tiedostoon Pythonissa

Voimme kirjoittaa JSON-tiedoston tiedostoon JSON-moduulin json.dump()-funktiolla ja tiedostojen käsittelyllä Pythonissa. Alla olevassa ohjelmassa olemme avanneet tiedoston sample.json kirjoitustilassa käyttäen 'Sisään' . Tiedosto luodaan, jos sitä ei ole olemassa. Json.dump() muuttaa Python-sanakirjan JSON-merkkijonoksi ja se tallennetaan tiedostoon sample.json.

Python 3




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

>

>

Lähtö:

python-json-write-to-file

Python Pretty Print JSON

Kun muunnamme merkkijonon JSON-muotoon, tiedot ovat vähemmän luettavassa muodossa. Jotta se olisi luettavampaa, voimme käyttää kaunista tulostusta välittämällä lisäargumentteja json.dumps()-funktioon, kuten esim. sisennys ja lajitteluavaimet kuten alla olevassa koodissa käytetään.

Python 3




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

>

>

Lähtö

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