Kako čitati i pisati Json datoteke u Pythonu

How Read Write Json Files Python



Ovaj članak će objasniti kako se rukuje JSON datotekama i podacima u programskom jeziku Python. Python dolazi s ugrađenim json modulom koji čini rukovanje JSON podacima lakim i jasnim.

O JSON -u

JSON (JavaScript Object Notation) format je datoteke i standard za pohranu podataka koji koristi parove ključ / vrijednost za pohranu i razmjenu podataka. To je najčešće korišteni format razmjene podataka, često viđen u RESTful API -ima, laganim bazama podataka, konfiguracijskim datotekama i drugom izvanmrežnom ili mrežnom softveru koji treba pohranjivati, dohvatiti i razmjenjivati ​​podatke. Većina programskih jezika uključuje knjižnice za raščlanjivanje i pisanje JSON podataka prema zadanim postavkama, a JSON je format podataka agnostičkih programskih jezika. Vrijednosti pohranjene u JSON datoteci ili korisnom opterećenju obično sadrže nizove, brojeve i vrste podataka koje se mogu serijalizirati, poput popisa (polja).







Rječnici JSON -a i Pythona

JSON podaci u pythonu pretvaraju se u objekt rječnika metodom učitavanja. Često se vidi da neki ljudi izjednačavaju json podatke i python rječnik, jer je sintaksa za njihovo definiranje gotovo ista. Međutim, json podaci nisu ništa drugo nego tekstualni niz strukturiran u krutoj sintaksi, dok je rječnik python objekt strukture podataka pohranjen u memoriji. Ako želite pohraniti podatke rječnika u tekstualnu datoteku ili ih poslati u neki drugi program koji nije python, morat ćete ih prvo pretvoriti u tekstualni niz (bajtova). Ovaj dampirani / konvertirani tekstualni niz definiran je u standardnoj sintaksi JSON -a, a proces pretvaranja python rječnika u json kompatibilan niz naziva se serijalizacija.



Čitanje i ispisivanje JSON podataka u Pythonu

JSON podaci mogu se dohvatiti kao odgovor s poslužitelja, pročitati iz datoteke, izrezati iz parametara upita URL -a itd. Ovaj će se članak uglavnom usredotočiti na čitanje json podataka iz lokalno pohranjene datoteke. Pretpostavimo da datoteka test.json sadrži sljedeće podatke:



{'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10'}

Da biste pročitali datoteku test.json u pythonu, možete upotrijebiti donji kod:





uvozjson

s otvorena ('test.json') kaof:
podaci=json.opterećenje(f)

istovariti=json.deponije(podaci)

ispisati (podaci)
ispisati (tip(podaci))
ispisati (istovariti)
ispisati (tip(istovariti))

Prvi redak gornjeg koda uvozi json modul. U sljedećem retku s open se koristi za sigurno čitanje sadržaja datoteke. Unutar bloka with open metoda json.load koristi se za čitanje i spremanje sadržaja datoteke u varijablu podataka. Podaci učitani u prethodnom koraku pretvaraju se natrag u json niz pomoću metode json.dump. Pokretanje gornjeg koda prikazat će sljedeće rezultate:

{'kodno ime':'Eoan Ermine', 'verzija':'Ubuntu 19.10'}
<razred 'dict'>
{'kodno ime':'Eoan Ermine', 'verzija':'Ubuntu 19.10'}
<razred 'str'>

Primijetite u gornjem izlazu da metoda json.load čita neobrađene json podatke u rječnik pythona, dok metode json.dumps pretvaraju rječnik u niz koji je kompatibilan sa strukturom JSON -a. Nakon što se JSON objekt pretvori u objekt rječnika python, možete koristiti ugrađene metode rječnika python za rukovanje podacima. Gornji primjer je prilično jednostavan i ne uključuje nizove u JSON podacima ili ugniježđene vrijednosti. Međutim, unutar pythona možete upravljati tim vrijednostima kao i svi drugi ugniježđeni rječnici i popisi.



Sortiranje i prilično ispis JSON podataka

Metoda json.dump podržava neke izborne parametre za razvrstavanje ključeva i lijep ispis rezultata radi bolje čitljivosti.

uvozjson

s otvorena ('test.json') kaof:
podaci=json.opterećenje(f)

istovariti=json.deponije(podaci,sortiraj_ključeve=Pravi,uvlačenje=4)
ispisati (istovariti)

Gornji kôd pokazat će sljedeći izlaz:

{
'codename': 'Eoan Ermine',
'verzija': 'Ubuntu 19.10'
}

Pretvorbe vrsta podataka

Donji popis ilustrira kako se JSON vrijednosti pretvaraju u python objekte i obrnuto.

JSON Piton
niz str
broj int ili float
točno netočno Točno netočno
null Nijedan
nizu popis
objekt dikt

Modul naredbenog retka Json.tool

Python uključuje lijepi uslužni program za naredbeni redak json.tool koji se može koristiti za provjeru valjanosti i lijepo ispisivanje JSON nizova i datoteka.

$ echo'{' codename ':' Eoan Ermine ',' version ':' Ubuntu 19.10 '}'| python3 -m json.alat

Izvođenje gore navedene naredbe pokazat će vam se sljedeći izlaz:

{
'codename': 'Eoan Ermine',
'verzija': 'Ubuntu 19.10'
}

Također možete koristiti json.tool s JSON datotekama. Zamijenite in_file i out_file u naredbi ispod željenim vrijednostima:

$ python3 -m json.alatu_datoteka van_datoteka

Osim lijepog ispisa, sortiranja i provjere JSON podataka, json.tool ne radi ništa drugo. Dakle, ako želite manipulirati bilo kojim JSON podacima, morate napisati vlastiti prilagođeni kôd pomoću ugrađenog JSON modula.