JSON este un format de date ușor pentru schimbul de date, care poate fi citit și scris cu ușurință de oameni și ușor de analizat și generat de mașini. Este un format de text complet independent de limbă. Pentru a lucra cu date JSON, Python are un pachet încorporat numit JSON.
Exemplu de șir JSON
s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}'>
Sintaxa lui JSON este considerat un subset al sintaxei lui JavaScript inclusiv următoarele:
- Perechi nume/valoare: Reprezintă date, numele este urmat de două puncte ( : ), iar perechile Nume/Valoare sunt separate prin virgulă( , ).
- Acolade: Ține obiecte.
- Paranteza patrata: Țineți matricele cu valorile separate prin virgulă ( , ).
Cheile/Numele trebuie să fie șiruri de caractere cu ghilimele duble, iar valorile trebuie să fie tipuri de date dintre următoarele:
Exemplu de fișier JSON:
{ 'employee': [ { 'id': '01', 'name': 'Amit', 'department': 'Sales' }, { 'id': '04', 'name': 'sunil', 'department': 'HR' } ] }>
Python Parse JSON String
În codul de mai jos, vom converti JSON într-un obiect Python. Pentru a analiza șirul JSON Python, mai întâi importăm modulul JSON. Avem un șir JSON stocat într-o variabilă 'angajat' și convertim acest șir JSON într-un obiect Python folosind json.loads() metoda modulului JSON în Python. După aceea, tipărim numele unui angajat folosind cheia „nume” .
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> print> (employee_dict)> print> (employee_dict[> 'name'> ])> |
>
număr palindrom
>Ieșire
{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin>
Python citește fișierul JSON
Să presupunem că avem un fișier JSON care arată așa.
Aici, am folosit funcția open() pentru a citi fișierul JSON. Apoi, fișierul este analizat folosind metoda json.load() care ne oferă un dicționar numit date.
Python3
import> json> # Opening JSON file> f> => open> (> 'data.json'> ,)> # returns JSON object as> # a dictionary> data> => json.load(f)> # Iterating through the json> # list> for> i> in> data[> 'emp_details'> ]:> > print> (i)> # Closing file> f.close()> |
>
>
Ieșire:
Convertiți Python Dict în JSON
În codul de mai jos, convertim un Dicționar Python la un obiect JSON folosind json.dumps() metoda modulului JSON în Python. Mai întâi importăm modulul JSON și apoi facem un mic dicționar cu câteva perechi cheie-valoare și apoi l-am trecut în metoda json.dumps() cu „indent=4” pentru a converti acest dicționar Python într-un obiect JSON. Deoarece am dat valoarea indentării la 4, există patru spații albe înaintea fiecărei date, așa cum se vede în rezultat.
Python3
# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary> => {> > 'id'> :> '04'> ,> > 'name'> :> 'sunil'> ,> > 'department'> :> 'HR'> }> > # Serializing json> json_object> => json.dumps(dictionary, indent> => 4> )> print> (json_object)> |
>
>Ieșire
{ 'id': '04', 'name': 'sunil', 'department': 'HR' }>
Următoarele tipuri de obiecte Python pot fi convertite în șiruri JSON:
Obiecte Python și conversia lor echivalentă în JSON:
Piton | Echivalent JSON |
---|---|
dict instalarea lanternei | obiect |
listă, tuplu | matrice |
str | şir |
int, float | număr |
Adevărat | Adevărat |
Fals | fals |
Nici unul | nul |
Scrierea JSON într-un fișier în Python
Putem scrie JSON în fișier folosind funcția json.dump() a modulului JSON și gestionarea fișierelor în Python. În programul de mai jos, am deschis un fișier numit sample.json în modul de scriere folosind 'În' . Fișierul va fi creat dacă nu există. Json.dump() va transforma dicționarul Python într-un șir JSON și va fi salvat în fișierul sample.json.
Python3
# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary> => {> > 'name'> :> 'sathiyajith'> ,> > 'rollno'> :> 56> ,> > 'cgpa'> :> 8.6> ,> > 'phonenumber'> :> '9976770500'> }> > with> open> (> 'sample.json'> ,> 'w'> ) as outfile:> > json.dump(dictionary, outfile)> |
>
>
Ieșire:
Python Pretty Print JSON
Când convertim un șir în JSON, datele sunt într-un format mai puțin lizibil. Pentru a o face mai lizibilă, putem folosi o imprimare destul de drăguță, pasând argumente suplimentare în funcția json.dumps(), cum ar fi indentare și sort_keys așa cum este folosit în codul de mai jos.
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> # Pretty Printing JSON string back> print> (json.dumps(employee_dict, indent> => 4> , sort_keys> => True> ))> |
>
>Ieșire
{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }>