Lucrul cu date JSON în Python

JSON (JavaScript Object Notation) este un format de date ușor utilizat pentru schimbul de date între un server și un client. Este folosit în mod obișnuit în aplicațiile web pentru a trimite și a primi date. Python oferă un modul încorporat numit json care facilitează lucrul cu date JSON. Acest articol vă va ghida prin elementele de bază ale lucrului cu date JSON în Python, inclusiv citirea, scrierea și manipularea obiectelor JSON.

Ce este JSON?

JSON este un format bazat pe text care este ușor de citit și de scris atât pentru oameni, cât și pentru mașini. Este format din perechi cheie-valoare, similare dicționarelor Python. Un obiect JSON tipic arată astfel:

{
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "is_student": false,
    "skills": ["Python", "JavaScript", "SQL"]
}

Importul modulului JSON

Modulul json este inclus în biblioteca standard a lui Python, deci nu trebuie să instalați nimic. Pur și simplu importați-l la începutul scriptului dvs.:

import json

Citirea datelor JSON

Puteți citi date JSON dintr-un șir sau dintr-un fișier. Metoda json.loads() este folosită pentru a analiza date JSON dintr-un șir, în timp ce json.load() este folosit pentru a citi datele JSON dintr-un fișier.

Citirea JSON dintr-un șir

Pentru a citi JSON dintr-un șir, utilizați metoda json.loads(), care convertește șirul JSON într-un dicționar Python.

# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)

print(data)
print(data['name'])  # Output: Alice

Citirea JSON dintr-un fișier

Pentru a citi date JSON dintr-un fișier, utilizați metoda json.load(). Această metodă citește conținutul unui fișier și îl convertește într-un dicționar Python.

# Example of reading JSON from a file
with open('data.json', 'r') as file:
    data = json.load(file)

print(data)

Scrierea datelor JSON

Puteți scrie date JSON într-un șir sau într-un fișier. Metoda json.dumps() este folosită pentru a converti un obiect Python într-un șir JSON, în timp ce json.dump() este folosit pentru a scrie date JSON într-un fișier.

Scrierea JSON într-un șir

Pentru a scrie JSON într-un șir, utilizați metoda json.dumps(), care convertește un dicționar Python într-un șir JSON.

# Example of writing JSON to a string
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

json_string = json.dumps(data)
print(json_string)

Scrierea JSON într-un fișier

Pentru a scrie date JSON într-un fișier, utilizați metoda json.dump(). Această metodă preia un obiect Python și îl scrie într-un fișier în format JSON.

# Example of writing JSON to a file
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

with open('output.json', 'w') as file:
    json.dump(data, file)

Pretty-Printing JSON Data

Metoda json.dumps() are mai mulți parametri care vă permit să formatați datele JSON pentru o mai bună lizibilitate. Parametrul indent specifică numărul de spații de utilizat pentru indentare, în timp ce parametrul sort_keys ​​sortează cheile în ieșire.

# Example of pretty-printing JSON data
data = {
    "name": "Charlie",
    "age": 35,
    "city": "Chicago"
}

json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)

Conversia între tipurile de date JSON și Python

Modulul json al lui Python poate gestiona diferite tipuri de date și le poate converti între JSON și Python. Iată o referință rapidă:

  • dict (Python) la obiect (JSON)
  • list (Python) la array (JSON)
  • str (Python) la string (JSON)
  • int, float (Python) la number (JSON)
  • True, False (Python) la true, false (JSON)
  • Niciunul (Python) la null (JSON)

Gestionarea erorilor JSON

În timpul lucrului cu JSON, pot apărea erori din cauza formatării incorecte sau a datelor neașteptate. Modulul json ridică excepții precum JSONDecodeError atunci când întâmpină astfel de probleme. Folosiți blocurile try și except pentru a gestiona aceste erori cu grație.

# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"'  # Missing closing brace

try:
    data = json.loads(json_string)
except json.JSONDecodeError as e:
    print(f"Error decoding JSON: {e}")

Concluzie

Lucrul cu date JSON este o abilitate fundamentală pentru dezvoltatorii Python, în special în dezvoltarea web și știința datelor. Modulul json oferă metode ușor de utilizat pentru citirea, scrierea și manipularea datelor JSON. Stăpânind aceste tehnici, puteți gestiona eficient datele JSON în aplicațiile dvs. Python.