Paano Basahin at Isulat ang Json Files sa Python

How Read Write Json Files Python



Ipapaliwanag ng artikulong ito kung paano hawakan ang mga file at data ng JSON sa wika ng programa ng Python. Ang Python ay mayroong built-in na json module na ginagawang madali at prangka ang paghawak ng data ng JSON.

Tungkol kay JSON

Ang JSON (JavaScript Object Notation) ay isang format ng file at pamantayan sa pag-iimbak ng data na gumagamit ng mga pares na key-halaga upang mag-imbak at makipagpalitan ng data. Ito ang pinakalawak na ginagamit na format ng palitan ng data, na madalas na nakikita sa RESTful API, mga magaan na database, config file, at iba pang offline o online na software na kailangang maiimbak, makuha at makipagpalitan ng data. Karamihan sa mga wika ng programa ay may kasamang mga aklatan upang mai-parse at isulat ang data ng JSON bilang default at ang JSON ay isang format na agnostic na data ng format ng wika. Ang mga halagang nakaimbak sa isang JSON file o payload ay karaniwang naglalaman ng mga string, numero at serializable na uri ng data tulad ng mga listahan (array).







Mga Diksyonaryong JSON at Python

Ang data ng JSON sa sawa ay na-convert sa isang bagay ng diksyonaryo sa pamamagitan ng paggamit ng paraan ng pag-load. Madalas na nakikita na ang ilang mga tao ay pinapantay ang data ng json at isang python dictionary, dahil ang syntax upang tukuyin ang pareho sa kanila ay halos pareho. Gayunpaman, ang data ng json ay walang anuman kundi isang string ng teksto na nakabalangkas sa isang matibay na syntax habang ang isang diksyunaryo ng sawa ay isang bagay na istraktura ng data na nakaimbak sa memorya. Kung nais mong mag-imbak ng data ng diksyonaryo sa isang text file o ipadala ito sa isa pang hindi pang-python na programa, kailangan mo munang i-convert ito sa isang text string (bytes). Ang tinapon / na-convert na text string na ito ay tinukoy sa karaniwang syntax ng JSON at ang proseso ng pag-convert ng isang python dictionary sa isang json compatible string ay tinatawag na serialization.



Pagbasa at pagtatapon ng Data ng JSON sa Python

Ang data ng JSON ay maaaring makuha bilang isang form ng pagtugon sa isang server, basahin mula sa file, hiniwa mula sa mga parameter ng query sa URL at iba pa. Pangunahing pagtuunan ng pansin ang artikulong ito sa pagbabasa ng data ng json mula sa isang lokal na nakaimbak na file. Ipagpalagay natin na ang isang file ng test.json ay naglalaman ng sumusunod na data:



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

Upang mabasa ang file ng test.json sa python, maaari mong gamitin ang code sa ibaba:





angkatjson

kasama si buksan ('test.json') bilangf:
data=jsonpagkarga(f)

magtapon=jsonnagtatapon(data)

mag-print (data)
mag-print (uri(data))
mag-print (magtapon)
mag-print (uri(magtapon))

Ang unang linya sa code sa itaas ay nag-iimport ng json module. Sa susunod na linya, gamit ang bukas ay ginagamit upang ligtas na mabasa ang mga nilalaman ng file. Sa loob ng may bukas na bloke, ang json.load na pamamaraan ay ginagamit upang mabasa at maiimbak ang mga nilalaman ng file sa variable ng data. Ang data na na-load sa nakaraang hakbang ay na-convert pabalik sa json string gamit ang json.dump na pamamaraan. Ang pagpapatakbo ng code sa itaas ay ipapakita ang sumusunod na output:

{'codename':'Eoan Ermine', 'bersyon':'Ubuntu 19.10'}
<klase 'dict'>
{'codename':'Eoan Ermine', 'bersyon':'Ubuntu 19.10'}
<klase 'str'>

Pansinin ang output sa itaas na ang pamamaraan ng json.load ay nagbabasa ng raw data ng json sa isang diksyunaryo ng sawa habang ang mga pamamaraan ng json.dumps ay nagpapalit ng isang diksyunaryo sa isang string na katugma sa istraktura ng JSON. Kapag ang isang bagay na JSON ay nai-convert sa isang bagay na diksyonaryo ng python, maaari mong gamitin ang built-in na mga pamamaraan ng diksyunaryo ng python upang hawakan ang data. Ang halimbawang nasa itaas ay medyo pangunahing at hindi nagsasama ng mga arrays sa data ng JSON o mga pinagsamang halaga. Gayunpaman sa loob ng sawa, maaari mong hawakan ang mga halagang ito tulad ng anumang iba pang mga nakapugad na mga diksyonaryo at listahan.



Pag-uuri at Medyo Pag-print ng Data ng JSON

Sinusuportahan ng pamamaraang json.dump ang ilang mga opsyonal na parameter para sa pag-uuri ng mga key at medyo pagpi-print ng output para sa pinahusay na kakayahang mabasa.

angkatjson

kasama si buksan ('test.json') bilangf:
data=jsonpagkarga(f)

magtapon=jsonnagtatapon(data,sort_keys=Totoo,indent=4)
mag-print (magtapon)

Ipapakita ng code sa itaas ang sumusunod na output:

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

Mga Conversion ng Uri ng Data

Inilalarawan ng listahan sa ibaba kung paano ang mga halaga ng JSON ay ginawang mga bagay na sawa at kabaligtaran.

Si JSON Sawa
lubid p
numero int o float
totoo, mali Totoo, Mali
wala Wala
array listahan
bagay dikta

Json.tool Command Line Module

Kasama sa Python ang isang magandang command line utility json.tool na maaaring magamit upang mapatunayan at medyo mai-print ang mga string at file ng JSON.

$ echo'{' codename ':' Eoan Ermine ',' bersyon ':' Ubuntu 19.10 '}'| python3 -m json.kasangkapan

Ang pagpapatakbo ng utos sa itaas ay magpapakita sa iyo ng sumusunod na output:

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

Maaari mo ring gamitin ang json.tool sa mga file na JSON. Palitan ang in_file at out_file sa utos sa ibaba ng iyong nais na mga halaga:

$ python3 -m json.kasangkapanin_file out_file

Maliban sa magandang pag-print, pag-uuri at pagpapatunay ng data ng JSON, ang json.tool ay walang ibang ginawa. Kaya kung nais mong manipulahin ang anumang data ng JSON, kailangan mong isulat ang iyong sariling pasadyang code gamit ang built-in na module ng JSON.