Parser e validatore Python JSON
Scopri come leggere, convalidare, modificare e serializzare JSON in Python. Padroneggia la libreria json integrata con esempi realistici.
Panoramica
JSON (JavaScript Object Notation) è il formato standard per lo scambio di dati sul web. Python fornisce un potente modulo integrato denominato "json" che traduce le stringhe JSON in dizionari Python e viceversa.
Il modulo espone due serie principali di operazioni: "loads" e "dumps" per gestire direttamente le stringhe JSON e "load" e "dump" per scrivere o leggere i dati direttamente dai flussi di file.
Quando si lavora con JSON, la gestione degli errori è fondamentale. Python solleva un `json.JSONDecodeError` se la sintassi della stringa è interrotta, il che è essenziale da rilevare quando si consumano payload dalle API pubbliche.
Codice e output di esecuzione
Uno script che dimostra la convalida delle stringhe JSON, l'analisi dict, le modifiche e la stampa gradevole.
import json
raw_json = """
{
"status": "success",
"data": {
"user_id": 9042,
"username": "coder_xyz",
"roles": ["admin", "developer"],
"verified": true
}
}
"""
try:
# Parsing JSON string into Python dict
data = json.loads(raw_json)
print("--- JSON Decoded Successfully ---")
print(f"Username: {data['data']['username']}")
print(f"Is Admin: {'admin' in data['data']['roles']}")
# Mutating Python dict
data['data']['verified'] = False
data['data']['last_login'] = "2026-05-25"
# Serializing dict back to formatted JSON
pretty_json = json.dumps(data, indent=4)
print("\n--- Modified JSON String ---")
print(pretty_json)
except json.JSONDecodeError as e:
print(f"Invalid JSON Format: {e}")--- JSON Decoded Successfully ---
Username: coder_xyz
Is Admin: True
--- Modified JSON String ---
{
"status": "success",
"data": {
"user_id": 9042,
"username": "coder_xyz",
"roles": [
"admin",
"developer"
],
"verified": false,
"last_login": "2026-05-25"
}
}Implementazione passo dopo passo
- Lettura delle configurazioni dell'applicazione e dei file delle credenziali
- Analisi delle risposte dagli endpoint API REST
- Salvataggio di stati o livelli del programma nelle utilità desktop
Domande frequenti
Qual è la differenza tra dump e dump in Python?
"dumps" serializza un oggetto in un formato stringa JSON, mentre "dump" scrive il flusso JSON serializzato direttamente in un oggetto file scrivibile.
In che modo Python gestisce i valori null JSON?
Il decodificatore "json" di Python mappa automaticamente JSON "null" su "None", "true" e "false" su "True" e "False" e gli array su elenchi.