Kaip skaityti ir rašyti „Json“ failus „Python“

How Read Write Json Files Python



Šiame straipsnyje bus paaiškinta, kaip tvarkyti JSON failus ir duomenis „Python“ programavimo kalba. „Python“ yra su integruotu „json“ moduliu, kuris leidžia lengvai ir nesudėtingai tvarkyti JSON duomenis.

Apie JSON

JSON („JavaScript Object Notation“) yra failo formatas ir duomenų saugojimo standartas, kuris naudoja raktų ir verčių poras duomenims saugoti ir keistis. Tai plačiausiai naudojamas keitimosi duomenimis formatas, dažnai matomas RESTful API, lengvose duomenų bazėse, konfigūracijos failuose ir kitoje neprisijungus arba internete veikiančioje programinėje įrangoje, kuriai reikia saugoti, gauti ir keistis duomenimis. Dauguma programavimo kalbų apima bibliotekas, skirtas pagal numatytuosius nustatymus analizuoti ir rašyti JSON duomenis, o JSON yra programavimo kalbos agnostinis duomenų formatas. Vertėse, saugomose JSON faile arba naudingoje apkrovoje, paprastai yra eilutės, skaičiai ir serijiniu būdu nustatomi duomenų tipai, pvz., Sąrašai (masyvai).







„JSON“ ir „Python“ žodynai

JSON duomenys „python“ konvertuojami į žodyno objektą naudojant įkėlimo metodą. Dažnai pastebima, kad kai kurie žmonės tapatina json duomenis ir python žodyną, nes jų abiejų apibrėžimo sintaksė yra beveik ta pati. Tačiau „json“ duomenys yra ne kas kita, kaip teksto eilutė, sudaryta pagal griežtą sintaksę, o „python“ žodynas yra atminties duomenų struktūros objektas. Jei norite išsaugoti žodyno duomenis teksto faile arba nusiųsti į kitą ne python programą, pirmiausia turėsite juos paversti teksto eilute (baitais). Ši dempingo / konvertuoto teksto eilutė yra apibrėžta standartinėje JSON sintaksėje, o python žodyno konvertavimo į json suderinamą eilutę procesas vadinamas serializavimu.



JSON duomenų skaitymas ir išmetimas „Python“

JSON duomenis galima gauti kaip atsakymą iš serverio, nuskaityti iš failo, supjaustyti pagal URL užklausos parametrus ir pan. Šiame straipsnyje daugiausia dėmesio bus skiriama „json“ duomenų skaitymui iš vietinio failo. Tarkime, kad faile test.json yra šie duomenys:



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

Norėdami perskaityti test.json failą „python“, galite naudoti žemiau esantį kodą:





importasjson

su atviras („test.json“) kaipf:
duomenis=json.apkrova(f)

sąvartynas=json.sąvartynai(duomenis)

spausdinti (duomenis)
spausdinti (tipo(duomenis))
spausdinti (sąvartynas)
spausdinti (tipo(sąvartynas))

Pirmoji aukščiau esančio kodo eilutė importuoja „json“ modulį. Kitoje eilutėje su atidaryta naudojama saugiai skaityti failo turinį. Bloke su atviru bloku json.load metodas naudojamas failo turiniui skaityti ir saugoti duomenų kintamajame. Ankstesniame žingsnyje įkelti duomenys vėl konvertuojami į json eilutę, naudojant metodą json.dump. Paleidus aukščiau esantį kodą, bus rodoma tokia išvestis:

{'Kodinis pavadinimas':„Eoan Ermine“, 'versija':„Ubuntu 19.10“}
<klasė 'diktuoti'>
{'Kodinis pavadinimas':„Eoan Ermine“, 'versija':„Ubuntu 19.10“}
<klasė 'str'>

Atkreipkite dėmesį į aukščiau pateiktą išvestį, kad „json.load“ metodas skaito neapdorotus „json“ duomenis į „python“ žodyną, o „json.dumps“ metodai žodyną paverčia į eilutę, suderinamą su JSON struktūra. Kai JSON objektas bus paverstas python žodyno objektu, duomenims tvarkyti galite naudoti integruotus python žodyno metodus. Aukščiau pateiktas pavyzdys yra gana paprastas ir neapima masyvų į JSON duomenis ar įdėtas vertes. Tačiau „Python“ galite valdyti šias vertybes, kaip ir bet kuriuos kitus įdėtus žodynus ir sąrašus.



JSON duomenų rūšiavimas ir gražus spausdinimas

„Json.dump“ metodas palaiko kai kuriuos pasirenkamus raktų rūšiavimo parametrus ir gražų spausdinimą, kad būtų lengviau skaityti.

importasjson

su atviras („test.json“) kaipf:
duomenis=json.apkrova(f)

sąvartynas=json.sąvartynai(duomenis,sort_keys=Tiesa,įtrauka=4)
spausdinti (sąvartynas)

Aukščiau pateiktas kodas parodys šią išvestį:

{
„kodinis pavadinimas“: „Eoan Ermine“,
„versija“: „Ubuntu 19.10“
}

Duomenų tipų konversijos

Žemiau pateiktame sąraše parodyta, kaip JSON reikšmės paverčiamos python objektais ir atvirkščiai.

JSONAS Python
eilutė p
skaičius int arba plūdė
tiesa, klaidinga Tiesa, klaidinga
nulis Nė vienas
masyvas sąrašą
objektas diktuoti

„Json.tool“ komandų eilutės modulis

„Python“ apima gražią komandinės eilutės įrankį json.tool, kurį galima naudoti norint patvirtinti ir gražiai spausdinti JSON eilutes ir failus.

$ echo'{' codename ':' Eoan Ermine ',' versija ':' Ubuntu 19.10 '}'| python3 -m json.įrankis

Vykdydami aukščiau pateiktą komandą, pamatysite šį rezultatą:

{
„kodinis pavadinimas“: „Eoan Ermine“,
„versija“: „Ubuntu 19.10“
}

Taip pat galite naudoti json.tool su JSON failais. Žemiau esančioje komandoje pakeiskite in_file ir out_file norimomis reikšmėmis:

$ python3 -m json.įrankisin_file out_file

Išskyrus gražų JSON duomenų spausdinimą, rūšiavimą ir patvirtinimą, „json.tool“ nieko nedaro. Taigi, jei norite manipuliuoti bet kokiais JSON duomenimis, turite parašyti savo pasirinktinį kodą naudodami integruotą JSON modulį.