Conținut curs
Gestionarea erorilor și excepțiilor
0/1
Python Intermediar
Despre lecție

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

  1. Încărcarea și decodificarea fișierelor JSON
  2. Scrierea și codificarea datelor JSON
  3. Manipularea JSON
  4. Validarea datelor JSON
  5. Exemple și scenarii de utilizare
  6. Î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.

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.

python
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.

python
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():

python
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

python
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

python
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.