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:
- merkkijono
- Määrä
- Objekti (JSON-objekti)
- joukko
- Boolean
- Tyhjä
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'> ])> |
Lähtö
{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin Python lukee JSON-tiedoston
Oletetaan, että meillä on JSON-tiedosto, joka näyttää tältä.
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ö:
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:
- sanele
- lista
- monikko
- merkkijono
- int
- kellua
- Totta
- Väärä
- Ei mitään
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ä |
| 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 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' }