Cum să citiți și să scrieți fișiere Json în Python

How Read Write Json Files Python



Acest articol va explica cum să gestionați fișierele și datele JSON în limbajul de programare Python. Python vine cu un modul json încorporat care face ca gestionarea datelor JSON să fie simplă și simplă.

Despre JSON

JSON (JavaScript Object Notation) este un format de fișier și un standard de stocare a datelor care utilizează perechi cheie-valoare pentru a stoca și a schimba date. Este cel mai utilizat format de schimb de date, adesea văzut în API-urile RESTful, baze de date ușoare, fișiere de configurare și alte programe offline sau online care trebuie să stocheze, să recupereze și să schimbe date. Majoritatea limbajelor de programare includ biblioteci pentru a analiza și scrie date JSON în mod implicit, iar JSON este un format de date agnostic al limbajului de programare. Valorile stocate într-un fișier JSON sau o sarcină utilă conțin de obicei șiruri, numere și tipuri de date serializabile, cum ar fi liste (tablouri).







JSON și Python Dictionaries

Datele JSON din python sunt convertite într-un obiect de dicționar utilizând metoda de încărcare. Se vede adesea că unii oameni echivalează date JSON și un dicționar Python, deoarece sintaxa pentru a le defini pe amândouă este aproape aceeași. Cu toate acestea, datele json nu sunt altceva decât un șir de text structurat într-o sintaxă rigidă în timp ce un dicționar python este un obiect de structură de date stocat în memorie. Dacă doriți să stocați datele dicționarului într-un fișier text sau să le trimiteți către alt program non-python, va trebui mai întâi să le convertiți într-un șir de text (octeți). Acest șir de text transformat / descărcat este definit în sintaxa standard JSON și procesul de conversie a unui dicționar Python într-un șir compatibil JSON se numește serializare.



Citirea și eliminarea datelor JSON în Python

Datele JSON pot fi recuperate ca răspuns de la un server, citite din fișier, fragmentate din parametrii de interogare URL și așa mai departe. Acest articol se va concentra în principal pe citirea datelor JSON dintr-un fișier stocat local. Să presupunem că un fișier test.json conține următoarele date:



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

Pentru a citi fișierul test.json în python, puteți utiliza codul de mai jos:





importjson

cu deschis („test.json”) la fel def:
date=json.sarcină(f)

dump=json.halde(date)

imprimare (date)
imprimare (tip(date))
imprimare (dump)
imprimare (tip(dump))

Prima linie din codul de mai sus importă modulul json. În rândul următor, cu open este folosit pentru a citi în siguranță conținutul fișierului. În cadrul blocului deschis, metoda json.load este utilizată pentru a citi și stoca conținutul fișierului în variabila de date. Datele încărcate în pasul anterior sunt convertite înapoi în șir json folosind metoda json.dump. Rularea codului de mai sus va afișa următoarea ieșire:

{'nume de cod':„Eoan Ermine”, 'versiune':„Ubuntu 19.10”}
<clasă „dict”>
{'nume de cod':„Eoan Ermine”, 'versiune':„Ubuntu 19.10”}
<clasă 'str'>

Observați în rezultatul de mai sus că metoda json.load citește datele json brute într-un dicționar python în timp ce metodele json.dumps convertesc un dicționar într-un șir care este compatibil cu structura JSON. Odată ce un obiect JSON a fost convertit într-un obiect dicționar Python, puteți utiliza metode de dicționar Python încorporate pentru a gestiona datele. Exemplul de mai sus este destul de simplu și nu include tablouri în date JSON sau valori imbricate. Cu toate acestea, în python, puteți gestiona aceste valori ca orice alte dicționare și liste imbricate.



Sortarea și tipărirea destulă a datelor JSON

Metoda json.dump acceptă câțiva parametri opționali pentru sortarea cheilor și imprimarea destul de bună a rezultatului pentru o lizibilitate îmbunătățită.

importjson

cu deschis („test.json”) la fel def:
date=json.sarcină(f)

dump=json.halde(date,sort_keys=Adevărat,indentare=4)
imprimare (dump)

Codul de mai sus va arăta următoarea ieșire:

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

Conversii tip date

Lista de mai jos ilustrează modul în care valorile JSON sunt convertite în obiecte python și invers.

JSON Piton
şir str
număr int sau plutitor
adevarat fals Adevarat fals
nul Nici unul
matrice listă
obiect dict

Modul linie de comandă Json.tool

Python include un utilitar de linie de comandă frumos json.tool care poate fi utilizat pentru a valida și a imprima drăguț șiruri și fișiere JSON.

$ ecou'{' codename ':' Eoan Ermine ',' version ':' Ubuntu 19.10 '}'| python3 -m json.instrument

Rularea comenzii de mai sus vă va arăta următoarea ieșire:

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

De asemenea, puteți utiliza json.tool cu ​​fișiere JSON. Înlocuiți in_file și out_file din comanda de mai jos cu valorile dorite:

$ python3 -m json.instrumentin_file out_file

În afară de tipărirea frumoasă, sortarea și validarea datelor JSON, json.tool nu face altceva. Deci, dacă doriți să manipulați orice date JSON, trebuie să scrieți propriul cod personalizat utilizând modulul JSON încorporat.