JSONi kohta
JSON (JavaScripti objektide märgistus) on failivorming ja andmete salvestamise standard, mis kasutab andmete salvestamiseks ja vahetamiseks võtme-väärtuste paare. See on kõige laialdasemalt kasutatav andmevahetusvorming, mida näeb sageli RESTful API-des, kergekaalulistes andmebaasides, konfiguratsioonifailides ja muus võrguühenduseta või võrgutarkvaras, mis peab andmeid salvestama, tooma ja vahetama. Enamik programmeerimiskeeli sisaldab vaikimisi JSON-andmete sõelumiseks ja kirjutamiseks teeke ning JSON on programmeerimiskeele agnostiline andmevorming. JSON-faili või kasuliku koormuse salvestatud väärtused sisaldavad tavaliselt stringe, numbreid ja jadatavat tüüpi andmetüüpe, näiteks loendeid (massiive).
JSONi ja Pythoni sõnastikud
JSON-andmed pythonis teisendatakse sõnastikuobjektiks, kasutades meetodit "laadida". Sageli nähakse, et mõned inimesed võrdsustavad jsoni andmed ja pythoni sõnaraamatu, kuna mõlema määratlemiseks on süntaks peaaegu sama. Jsoni andmed pole aga muud kui jäikus süntaksis struktureeritud tekstistring, samas kui pythoni sõnastik on mällu salvestatud andmestruktuuri objekt. Kui soovite sõnastikuandmeid salvestada tekstifaili või saata need muule kui Pythoni programmile, peate need kõigepealt teisendama tekstistringiks (baitideks). See tühjendatud / teisendatud tekstistring on määratletud JSON-i standardses süntaksis ja Pythoni sõnaraamatu JSON-iga ühilduvaks stringiks teisendamise protsessi nimetatakse seerialiseerimiseks.
JSON-andmete lugemine ja tühjendamine Pythonis
JSON-i andmeid saab hankida vastusena serverist, lugeda failist, lõigata URL-i päringu parameetritest ja nii edasi. See artikkel keskendub peamiselt jsoni andmete lugemisele kohapeal salvestatud failist. Oletame, et „test.json ”fail sisaldab järgmisi andmeid:
"koodnimi": "Eoan Ermine", "versioon": "Ubuntu 19.10 "Testi lugemiseks.jsoni fail pythonis, saate kasutada järgmist koodi:
import jsonavatud ("test.json ") kui f:
andmed = json.koormus (f)
dump = json.prügimäed (andmed)
print (andmed)
print (tüüp (andmed))
print (prügikast)
print (tüüp (prügikast))
Ülaltoodud koodi esimene rida impordib jsoni mooduli. Järgmisel real kasutatakse faili sisu ohutuks lugemiseks sõna "avatud". Plokis „avatud“ on „json.laadimismeetodit kasutatakse faili sisu muutuja "data" lugemiseks ja salvestamiseks. Eelmises etapis laaditud andmed teisendatakse tagasi jsoni stringiks, kasutades valikut „json.dump ”meetod. Ülaltoodud koodi käivitamisel kuvatakse järgmine väljund:
'koodnimi': 'Eoan Ermine', 'versioon': 'Ubuntu 19.10 '"koodnimi": "Eoan Ermine", "versioon": "Ubuntu 19.10 "
Pange ülaltoodud väljundis tähele, et „json.laadige meetod loeb jsoni toored andmed pythoni sõnastikku, samal ajal kui „json.dumps ”meetodid teisendavad sõnastiku stringiks, mis ühildub JSON-i struktuuriga. Kui JSON-objekt on teisendatud Pythoni sõnaraamatu objektiks, saate andmete töötlemiseks kasutada sisseehitatud Pythoni sõnaraamatu meetodeid. Ülaltoodud näide on üsna lihtne ja ei sisalda massiive JSON-i andmetes ega sisestatud väärtustes. Kuid pythonis saate neid väärtusi käsitseda nagu kõiki teisi pesastatud sõnastikke ja loendeid.
JSON-andmete sortimine ja ilus printimine
„Json.dump ”meetod toetab mõningaid valikulisi parameetreid võtmete sorteerimiseks ja väljundi kenaks printimiseks, et see oleks paremini loetav.
import jsonavatud ("test.json ") kui f:
andmed = json.koormus (f)
dump = json.prügimäed (andmed, sort_keys = True, taane = 4)
print (prügikast)
Ülaltoodud kood näitab järgmist väljundit:
"koodnimi": "Eoan Ermine",
"versioon": "Ubuntu 19.10 "
Andmetüübi konversioonid
Allpool olev loetelu illustreerib, kuidas JSON-i väärtused teisendatakse pythoni objektideks ja vastupidi.
JSON | Python |
string | str |
number | int või ujuk |
õige Vale | Õige Vale |
null | Puudub |
massiiv | nimekirja |
objekt | dikteerima |
Json.tööriista käsurea moodul
Python sisaldab kena käsurea utiliiti “json.tööriist ”, mida saab kasutada JSON-i stringide ja failide valideerimiseks ja ilusaks printimiseks.
$ echo '"koodnimi": "Eoan Ermine", "versioon": "Ubuntu 19.10 " '| python3 -m json.tööriistÜlaltoodud käsu käivitamine näitab järgmist väljundit:
"koodnimi": "Eoan Ermine",
"versioon": "Ubuntu 19.10 "
Võite kasutada ka jsoni.tööriist JSON-failidega. Asendage allolevas käsus „in_file” ja „out_file” soovitud väärtustega:
$ python3 -m json.tööriist failis_failPeale ilusa printimise, JSON-andmete sortimise ja valideerimise, json.tööriist ei tee midagi muud. Nii et kui soovite JSON-andmetega manipuleerida, peate sisseehitatud JSON-mooduli abil kirjutama oma kohandatud koodi.