Kako brati in pisati datoteke Json v Pythonu

How Read Write Json Files Python



Ta članek bo razložil, kako ravnati z datotekami in podatki JSON v programskem jeziku Python. Python ima vgrajen modul json, ki omogoča enostavno in preprosto ravnanje s podatki JSON.

O JSON -u

JSON (JavaScript Object Notation) je oblika datoteke in standard za shranjevanje podatkov, ki za shranjevanje in izmenjavo podatkov uporablja pare ključ-vrednost. To je najpogosteje uporabljena oblika izmenjave podatkov, ki jo pogosto vidimo v API -jih RESTful, lahkih bazah podatkov, konfiguracijskih datotekah in drugi programski opremi brez povezave ali na spletu, ki potrebuje shranjevanje, pridobivanje in izmenjavo podatkov. Večina programskih jezikov privzeto vključuje knjižnice za razčlenjevanje in zapisovanje podatkov JSON, JSON pa je agnostična oblika zapisa programskega jezika. Vrednosti, shranjene v datoteki JSON ali koristnem tovoru, običajno vsebujejo nize, številke in vrste podatkov, ki jih je mogoče serijalizirati, na primer sezname (matrike).







Slovarji JSON in Python

Podatki JSON v pythonu se z metodo obremenitve pretvorijo v objekt slovarja. Pogosto je videti, da nekateri ljudje enačijo podatke json in slovar python, saj je sintaksa za opredelitev obeh skoraj enaka. Vendar podatki json niso nič drugega kot besedilni niz, strukturiran v togi skladnji, medtem ko je slovar python objekt podatkovne strukture, shranjen v pomnilniku. Če želite slovarske podatke shraniti v besedilno datoteko ali jih poslati v drug program, ki ni python, jih boste morali najprej pretvoriti v besedilni niz (bajti). Ta dampirani / pretvorjeni besedilni niz je opredeljen v standardni sintaksi JSON -a, postopek pretvorbe slovarja python v niz, združljiv z json, pa se imenuje serializacija.



Branje in shranjevanje podatkov JSON v Pythonu

Podatke JSON je mogoče pridobiti kot odgovor od strežnika, prebrati iz datoteke, razrezati iz parametrov poizvedbe URL itd. Ta članek se bo osredotočil predvsem na branje podatkov json iz lokalno shranjene datoteke. Predpostavimo, da datoteka test.json vsebuje naslednje podatke:



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

Če želite prebrati datoteko test.json v pythonu, lahko uporabite spodnjo kodo:





uvozjson

z odprto ('test.json') kotf:
podatkov=json.obremenitev(f)

odlagališče=json.odlagališča(podatkov)

tiskanje (podatkov)
tiskanje (tip(podatkov))
tiskanje (odlagališče)
tiskanje (tip(odlagališče))

Prva vrstica zgornje kode uvaža modul json. V naslednji vrstici se z open uporablja za varno branje vsebine datoteke. Znotraj odprtega bloka se metoda json.load uporablja za branje in shranjevanje vsebine datoteke v podatkovni spremenljivki. Podatki, naloženi v prejšnjem koraku, se z metodo json.dump pretvorijo nazaj v niz json. Če zaženete zgornjo kodo, bo prikazan naslednji izhod:

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

V zgornjem izhodu opazite, da metoda json.load bere surove podatke json v slovar python, medtem ko metode json.dumps pretvarjajo slovar v niz, ki je združljiv s strukturo JSON. Ko je predmet JSON pretvorjen v slovarski objekt python, lahko za obdelavo podatkov uporabite vgrajene slovarske metode python. Zgornji primer je precej preprost in ne vključuje nizov v podatkih JSON ali ugnezdenih vrednosti. V Pythonu pa lahko te vrednosti obravnavate kot vse druge ugnezdene slovarje in sezname.



Razvrščanje in lepo tiskanje podatkov JSON

Metoda json.dump podpira nekatere izbirne parametre za razvrščanje ključev in lep tisk izpisa za boljšo berljivost.

uvozjson

z odprto ('test.json') kotf:
podatkov=json.obremenitev(f)

odlagališče=json.odlagališča(podatkov,sort_keys=Prav,alinea=4)
tiskanje (odlagališče)

Zgornja koda bo prikazala naslednji izhod:

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

Pretvorbe podatkovnih vrst

Spodnji seznam ponazarja, kako se vrednosti JSON pretvorijo v predmete python in obratno.

JSON Python
vrvica str
številko int ali float
pravilno napačno Pravilno napačno
nič Nobena
matriko seznam
predmet dikt

Modul ukazne vrstice Json.tool

Python vključuje prijeten pripomoček za ukazno vrstico json.tool, ki ga lahko uporabite za preverjanje in lep tisk nizov in datotek JSON.

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

Če zaženete zgornji ukaz, se prikaže naslednji izhod:

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

Json.tool lahko uporabite tudi z datotekami JSON. V spodnjem ukazu zamenjajte datoteko in_file in out_file z želenimi vrednostmi:

$ python3 -m json.orodjein_file out_file

Razen lepega tiskanja, razvrščanja in preverjanja podatkov JSON, json.tool ne počne ničesar drugega. Če torej želite upravljati katere koli podatke JSON, morate z vgrajenim modulom JSON napisati lastno kodo po meri.