Introducere
JSON (JavaScript Object Notation) este un format de date ușor de citit pentru om și ușor de prelucrat pentru mașini, utilizat pe scară largă pentru schimbul de date între aplicații și servicii web. În această lecție, vom explora metode avansate de lucru cu fișiere JSON în Python, inclusiv citirea, scrierea, validarea și manipularea datelor JSON.
Cuprins
- Încărcarea și decodificarea fișierelor JSON
- Scrierea și codificarea datelor JSON
- Manipularea JSON
- Validarea datelor JSON
- Exemple și scenarii de utilizare
- Încheiere și concluzii
1. Încărcarea și decodificarea fișierelor JSON
Pentru a încărca și decodifica un fișier JSON în Python, putem folosi modulul json împreună cu funcția open() pentru a deschide fișierul. Apoi, putem utiliza metoda json.load() pentru a decodifica datele JSON într-un obiect Python.
import json
with open('file.json', 'r') as json_file:
data = json.load(json_file)
print(data)
În acest exemplu, data va fi un obiect Python (de obicei, un dicționar sau o listă) care conține datele JSON decodate din fișierul ‘file.json’.
2. Scrierea și codificarea datelor JSON
Pentru a scrie și codifica datele JSON într-un fișier, putem folosi modulul json împreună cu funcția open() pentru a deschide fișierul în modul de scriere. Apoi, putem utiliza metoda json.dump() pentru a codifica obiectul Python în date JSON și a le scrie în fișier.
import json
data = {
'name': 'Alice',
'age': 30,
'city': 'New York'
}
with open('output.json', 'w') as json_file:
json.dump(data, json_file)
În acest exemplu, obiectul Python data este codificat în date JSON și scris în fișierul ‘output.json’.
3. Manipularea JSON
După ce datele JSON au fost decodate într-un obiect Python, putem lucra cu ele ca și cum ar fi un dicționar sau o listă Python obișnuită. De exemplu, putem adăuga, modifica sau șterge elemente din datele JSON.
import json
with open('file.json', 'r') as json_file:
data = json.load(json_file)
# Add a new key-value pair
data['country'] = 'USA'
# Update an existing key-value pair
data['age'] = 31
# Delete a key-value pair
del data['city']
with open('output.json', 'w') as json_file:
json.dump(data, json_file)
4. Validarea datelor JSON
Pentru a valida datele JSON în Python, putem folosi biblioteca jsonschema. Aceasta permite validarea datelor JSON în funcție de un șablon predefinit (schema JSON). Pentru a utiliza jsonschema, mai întâi trebuie să instalați biblioteca:
pip install jsonschema
Apoi, putem defini schema JSON și valida datele JSON folosind metoda validate():
import json
from jsonschema import validate, ValidationError
schema = {
'type': 'object',
'properties': {
'name': {'type': 'string'},
'age': {'type': 'integer'},
'city': {'type': 'string'}
},
'required': ['name', 'age']
}
data = {
'name': 'Alice',
'age': 30
}
try:
validate(instance=data, schema=schema)
print('JSON data is valid')
except ValidationError as e:
print(f'JSON data is invalid: {e}')
În acest exemplu, schema JSON schema impune ca datele JSON să aibă câmpurile ‘name’ și ‘age’ și să fie de tipul corespunzător (șir de caractere și întreg, respectiv). Dacă datele JSON nu respectă schema, metoda validate() va genera o excepție ValidationError.
5. Exemple și scenarii de utilizare
Următoarele exemple prezintă cum să utilizați tehnicile de lucru avansat cu fișiere JSON în diferite scenarii.
Exemplu 1: Combinarea mai multor fișiere JSON
import json
import glob
files = glob.glob('*.json')
combined_data = []
for file in files:
with open(file, 'r') as json_file:
data = json.load(json_file)
combined_data.extend(data)
with open('combined.json', 'w') as output_file:
json.dump(combined_data, output_file)
În acest exemplu, toate fișierele JSON din directorul curent sunt combinate într-un singur fișier JSON, ‘combined.json’.
Exemplu 2: Filtrarea datelor JSON
import json
def filter_data(data):
return data['age'] >= 18
with open('input.json', 'r') as json_file:
data = json.load(json_file)
filtered_data = list(filter(filter_data, data))
with open('filtered.json', 'w') as output_file:
json.dump(filtered_data, output_file)
În acest exemplu, datele JSON din fișierul ‘input.json’ sunt filtrate pentru a păstra doar înregistrările cu vârsta de cel puțin 18 ani și apoi salvate în fișierul ‘filtered.json’.
6. Încheiere și concluzii
În această lecție, am abordat mai multe metode avansate pentru lucrul cu fișiere JSON în Python, inclusiv încărcarea și decodificarea, scrierea și codificarea, manipularea și validarea datelor JSON. Cu aceste cunoștințe, puteți începe să utilizați fișierele JSON în mod eficient în proiectele dvs. Python, să integrați diverse servicii web și să prelucrați datele pentru a extrage informații valoroase.