O JSON-u
JSON (JavaScript Object Notation) je format 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 zbirkah podatkov, konfiguracijskih datotekah in drugi programski opremi, ki ni na spletu ali v spletu in ki potrebuje za 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 podatkov programskega jezika. Vrednosti, shranjene v datoteki JSON ali koristnem tovoru, običajno vsebujejo nize, številke in podatkovne tipe, ki jih je mogoče serirati, kot so seznami (polja).
Slovarji JSON in Python
Podatki JSON v pythonu se pretvorijo v slovarski objekt z uporabo metode "load". Pogosto je opaziti, da nekateri enačijo podatke json in slovar python, saj je sintaksa za določitev obeh skoraj enaka. Vendar podatki json niso nič drugega kot besedilni niz, strukturiran v togi sintaksi, medtem ko je slovar python objekt podatkovne strukture, shranjen v pomnilniku. Če želite podatke o slovarju shraniti v besedilno datoteko ali jih poslati drugemu programu, ki ni python, jih boste morali najprej pretvoriti v besedilni niz (bajti). Ta dampinški / pretvorjeni besedilni niz je opredeljen v standardni sintaksi JSON in postopek pretvorbe slovarja python v niz, združljiv z json, se imenuje serializacija.
Branje in odstranjevanje podatkov JSON v Pythonu
Podatke JSON je mogoče pridobiti kot odgovor s 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 je "test.json "vsebuje naslednje podatke:
"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "Za branje testa.json v pythonu, lahko uporabite spodnjo kodo:
uvoz jsonz odprtim ("test.json ") kot f:
podatki = json.obremenitev (f)
dump = json.odlagališča (podatki)
tisk (podatki)
tisk (vrsta (podatki))
tiskanje (dump)
tiskanje (vrsta (dump))
Prva vrstica v zgornji kodi uvozi json modul. V naslednji vrstici se za varno branje vsebine datoteke uporablja »z odprtim«. V bloku »z odprtim« je json.load "se uporablja za branje in shranjevanje vsebine datotek v spremenljivko" data ". Podatki, naloženi v prejšnjem koraku, se pretvorijo nazaj v niz json z uporabo »json.dump “. Zagon zgornje kode bo prikazal naslednji izhod:
'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10 '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "
V zgornjem izhodu opazite, da je json.load "metoda bere neobdelane json podatke v slovar python, medtem ko" json.dumps "pretvori slovar v niz, ki je združljiv s strukturo JSON. Ko je objekt JSON pretvorjen v objekt slovarja python, lahko za obdelavo podatkov uporabite vgrajene metode slovarja python. Zgornji primer je precej osnoven in ne vključuje nizov v podatkih JSON ali ugnezdenih vrednostih. Vendar znotraj pythona lahko s temi vrednostmi ravnate kot z drugimi ugnezdenimi slovarji in seznami.
Razvrščanje in lepo tiskanje podatkov JSON
"Json.dump ”metoda podpira nekatere neobvezne parametre za razvrščanje tipk in lepo tiskanje izhoda za boljšo berljivost.
uvoz jsonz odprtim ("test.json ") kot f:
podatki = json.obremenitev (f)
dump = json.odlagališča (podatki, sort_keys = True, zamik = 4)
tiskanje (dump)
Zgornja koda bo prikazala naslednji izhod:
"codename": "Eoan hermelin",
"version": "Ubuntu 19.10 "
Pretvorbe podatkovnih vrst
Spodnji seznam prikazuje, 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č | Nobenega |
matriko | seznam |
predmet | dict |
Json.modul ukazne vrstice orodja
Python vključuje lepo orodje za ukazno vrstico json.orodje «, ki ga lahko uporabite za preverjanje in tiskanje nizov in datotek JSON.
$ echo '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 " '| python3 -m json.orodjeZagon zgornjega ukaza vam bo pokazal naslednje rezultate:
"codename": "Eoan hermelin",
"version": "Ubuntu 19.10 "
Uporabite lahko tudi json.orodje z datotekami JSON. V spodnjem ukazu zamenjajte “in_file” in “out_file” z želenimi vrednostmi:
$ python3 -m json.orodje in_file out_fileRazen lepega tiskanja, razvrščanja in preverjanja podatkov JSON, json.orodje ne naredi nič drugega. Torej, če želite manipulirati s kakršnimi koli podatki JSON, morate z vgrajenim modulom JSON napisati svojo kodo po meri.