În acest tutorial, veți învăța să analizați, să citiți și să scrieți JSON în Python cu ajutorul unor exemple. De asemenea, veți învăța să convertiți JSON în dict și să-l imprimați frumos.
JSON ( J ava S cript O bject N otation) este un format de date popular utilizat pentru reprezentarea datelor structurate. Este obișnuit să transmiteți și să primiți date între un server și o aplicație web în format JSON.
În Python, JSON există ca un șir. De exemplu:
p = '("name": "Bob", "languages": ("Python", "Java"))'
De asemenea, este obișnuit să stocați un obiect JSON într-un fișier.
Importați modulul json
Pentru a lucra cu JSON (șir sau fișier care conține obiect JSON), puteți utiliza json
modulul Python . Trebuie să importați modulul înainte de al putea utiliza.
import json
Analizați JSON în Python
json
Modulul îl face ușor pentru a analiza siruri de caractere JSON și fișiere care conțin JSON obiect.
Exemplul 1: Python JSON pentru a dicta
Puteți analiza un șir JSON folosind json.loads()
metoda. Metoda returnează un dicționar.
import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))
Aici, person este un șir JSON, iar person_dict este un dicționar.
Exemplul 2: Python a citit fișierul JSON
Puteți utiliza json.load()
metoda pentru a citi un fișier care conține obiect JSON.
Să presupunem că aveți un fișier numit person.json
care conține un obiect JSON.
("name": "Bob", "languages": ("English", "Fench") )
Iată cum puteți analiza acest fișier:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Aici am folosit open()
funcția pentru a citi fișierul json. Apoi, fișierul este analizat folosind json.load()
metoda care ne oferă un dicționar numit date.
Dacă nu știți cum să citiți și să scrieți fișiere în Python, vă recomandăm să verificați Python File I / O.
Python Convertiți în șir JSON
Puteți converti un dicționar în șir JSON folosind json.dumps()
metoda.
Exemplul 3: convertiți dict în JSON
import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json)
Iată un tabel care prezintă obiectele Python și conversia lor echivalentă în JSON.
Piton | Echivalent JSON |
---|---|
dict | obiect |
list , tuple | matrice |
str | şir |
int , float ,int | număr |
True | Adevărat |
False | fals |
None | nul |
Scrierea JSON într-un fișier
Pentru a scrie JSON într-un fișier în Python, putem folosi json.dump()
metoda.
Exemplul 4: Scrierea JSON într-un fișier
import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file)
În programul de mai sus, am deschis un fișier numit person.txt
în modul de scriere folosind 'w'
. Dacă fișierul nu există deja, va fi creat. Apoi, se json.dump()
transformă person_dict
într-un șir JSON care va fi salvat în person.txt
fișier.
Când rulați programul, person.txt
fișierul va fi creat. Fișierul are următorul text în interiorul său.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python destul de imprimat JSON
Pentru a analiza și depana date JSON, este posibil să fie nevoie să le imprimăm într-un format mai lizibil. Acest lucru se poate face prin trecerea de parametri suplimentari indent
și sort_keys
către json.dumps()
și json.dump()
metodă.
Exemplul 5: Python pretty print JSON
import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True))
Când rulați programul, ieșirea va fi:
(„limbi”: „engleză”, „nume”: „Bob”, „numere”: (2, 1.6, nul))
În programul de mai sus, am folosit 4
spații pentru indentare. Și cheile sunt sortate în ordine crescătoare.
Apropo, valoarea implicită a liniuței este None
. Și valoarea implicită a sort_keys este False
.
Lecturi recomandate:
- Python JSON la CSV și invers
- Python XML către JSON și invers
- Python simplejson