Python JSON: citire, scriere, analiză JSON (cu exemple)

Î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 jsonmodulul Python . Trebuie să importați modulul înainte de al putea utiliza.

 import json

Analizați JSON în Python

jsonModulul î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.jsoncare 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.txtfișier.

Când rulați programul, person.txtfiș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_keyscă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 4spaț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

Articole interesante...