Kuinka lukea ja kirjoittaa Json -tiedostoja Pythonissa

How Read Write Json Files Python



Tässä artikkelissa kerrotaan, miten käsitellä JSON -tiedostoja ja tietoja Python -ohjelmointikielellä. Pythonissa on sisäänrakennettu json-moduuli, joka tekee JSON-tietojen käsittelystä helppoa ja yksinkertaista.

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.

tuontijson

kanssa 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ökalu

Yllä 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_file

Lukuun 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.