Tietoja JSONista
JSON (JavaScript Object Notation) on tiedostomuoto ja tallennusstandardi, joka käyttää avain-arvo-pareja tietojen tallentamiseen ja vaihtamiseen. Se on yleisimmin käytetty tiedonsiirtoformaatti, joka nähdään usein RESTful -sovellusliittymissä, kevyissä tietokannoissa, määritystiedostoissa ja muissa offline- tai online -ohjelmistoissa, joiden on tallennettava, haettava ja vaihdettava tietoja. Useimmat ohjelmointikielet sisältävät kirjastoja JSON -tietojen jäsentämiseen ja kirjoittamiseen oletusarvoisesti, ja JSON on ohjelmointikielen agnostinen datamuoto. JSON -tiedostoon tai hyötykuormaan tallennetut arvot sisältävät yleensä merkkijonoja, numeroita ja sarjoitettavia tietotyyppejä, kuten luetteloita (matriiseja).
JSON- ja Python -sanakirjat
Pythonin JSON -tiedot muunnetaan sanakirjaobjektiksi latausmenetelmän avulla. Usein nähdään, että jotkut ihmiset rinnastavat json -tiedot ja python -sanakirjan, koska syntaksi molempien määrittelemiseksi on lähes sama. Json -data ei kuitenkaan ole muuta kuin jäykkään syntaksiin rakennettu tekstijono, kun taas python -sanakirja on muistiin tallennettu tietorakenneobjekti. Jos haluat tallentaa sanakirjatietoja tekstitiedostoon tai lähettää ne toiselle ei-python-ohjelmalle, se on ensin muunnettava tekstimerkkijonoksi (tavua). Tämä polkumyynnillä / muunnettu tekstimerkkijono määritellään JSON: n vakiosyntaksissa, ja prosessia, jolla python -sanakirja muutetaan json -yhteensopivaksi merkkijonoksi, kutsutaan sarjoitukseksi.
JSON -tietojen lukeminen ja tyhjentäminen Pythonissa
JSON -tiedot voidaan hakea vastauksena palvelimelta, lukea tiedostosta, leikata URL -kyselyparametreista ja niin edelleen. Tämä artikkeli keskittyy lähinnä json -tietojen lukemiseen paikallisesti tallennetusta tiedostosta. Oletetaan, että test.json -tiedosto sisältää seuraavat tiedot:
{'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10'}
Voit lukea test.json -tiedoston pythonissa käyttämällä alla olevaa koodia:
tuontijson
kanssa avata ('test.json') kutenf:
tiedot=json.ladata(f)
kaatopaikka=json.kaatopaikkoja(tiedot)
Tulosta (tiedot)
Tulosta (tyyppi(tiedot))
Tulosta (kaatopaikka)
Tulosta (tyyppi(kaatopaikka))
Yllä olevan koodin ensimmäinen rivi tuo json -moduulin. Seuraavalla rivillä avointa käytetään tiedoston sisällön turvalliseen lukemiseen. Avoimen lohkon sisällä json.load -menetelmää käytetään tiedoston sisällön lukemiseen ja tallentamiseen datamuuttujaan. Edellisessä vaiheessa ladatut tiedot muunnetaan takaisin json -merkkijonoksi json.dump -menetelmällä. Yllä olevan koodin suorittaminen näyttää seuraavan tuloksen:
{'koodinimi':'Eoan Ermine', 'versio':'Ubuntu 19.10'}<luokka 'sanella'>
{'koodinimi':'Eoan Ermine', 'versio':'Ubuntu 19.10'}
<luokka 'str'>
Huomaa yllä olevassa tulosteessa, että json.load -menetelmä lukee raa'at json -tiedot python -sanakirjaan, kun taas json.dumps -menetelmät muuntaa sanakirjan merkkijonoksi, joka on yhteensopiva JSON -rakenteen kanssa. Kun JSON-objekti on muunnettu python-sanakirjaobjektiksi, voit käsitellä tietoja käyttämällä sisäänrakennettuja python-sanakirjamenetelmiä. Yllä oleva esimerkki on melko perus, eikä se sisällä matriiseja JSON -tietoihin tai sisäkkäisiin arvoihin. Pythonissa voit kuitenkin käsitellä näitä arvoja kuten muutkin sisäkkäiset sanakirjat ja luettelot.
JSON -tietojen lajittelu ja kaunis tulostus
Json.dump -menetelmä tukee joitain valinnaisia parametreja avainten lajitteluun ja tulosteen kauniiseen tulostamiseen luettavuuden parantamiseksi.
tuontijsonkanssa avata ('test.json') kutenf:
tiedot=json.ladata(f)
kaatopaikka=json.kaatopaikkoja(tiedot,sort_keys=Totta,sisennys=4)
Tulosta (kaatopaikka)
Yllä oleva koodi näyttää seuraavan tuloksen:
{'koodinimi': 'Eoan Ermine',
'versio': 'Ubuntu 19.10'
}
Tietotyypin muunnokset
Alla oleva luettelo havainnollistaa, miten JSON -arvot muunnetaan python -objekteiksi ja päinvastoin.
JSON | Python |
merkkijono | s |
määrä | int tai kellua |
totta, valhetta | Totta, väärin |
tyhjä | Ei mitään |
matriisi | lista |
esine | sanella |
Json.tool -komentorivimoduuli
Python sisältää mukavan komentorivityökalun json.tool, jota voidaan käyttää JSON -merkkijonojen ja tiedostojen vahvistamiseen ja kauniiseen tulostamiseen.
$ echo'{' codename ':' Eoan Ermine ',' version ':' Ubuntu 19.10 '}'| python3 -m json.työkaluYllä olevan komennon suorittaminen näyttää seuraavan tuloksen:
{'koodinimi': 'Eoan Ermine',
'versio': 'Ubuntu 19.10'
}
Voit myös käyttää json.toolia JSON -tiedostojen kanssa. Korvaa in_file ja out_file alla olevassa komennossa haluamillasi arvoilla:
$ python3 -m json.työkaluin_file out_fileLukuun ottamatta kaunista tulostusta, lajittelua ja JSON -tietojen validointia, json.tool ei tee mitään muuta. Joten jos haluat käsitellä JSON-tietoja, sinun on kirjoitettava oma mukautettu koodi sisäänrakennetun JSON-moduulin avulla.