Analisi JSON Python: serializzazione e deserializzazione
Scopri come leggere, scrivere e analizzare i dati JSON in Python. Padroneggiare json.loads, json.dumps e personalizzare codificatori/decodificatori JSON.
Panoramica
JSON (JavaScript Object Notation) è il formato leggero di interscambio di dati che domina le moderne API Web, configurazioni e payload di database. Poiché le strutture JSON assomigliano ai dizionari e agli elenchi Python, la traduzione tra di loro è incredibilmente semplice. Python è dotato di un modulo `json` integrato, che semplifica l'analisi delle stringhe JSON in oggetti Python e la riconversione degli oggetti Python in stringhe JSON.
Il processo di traduzione di un oggetto Python (come un dizionario) in una stringa JSON grezza è chiamato serializzazione o codifica. Questo è gestito da `json.dumps()` (per le stringhe) e `json.dump()` (per scrivere direttamente su un file). Puoi controllare parametri di formattazione come "indent" per abbellire il JSON o "sort_keys" per mantenere gli attributi in ordine alfabetico. Al contrario, l'analisi di una stringa JSON in un dizionario Python è chiamata deserializzazione, eseguita tramite `json.loads()` e `json.load()`.
Mentre i tipi Python standard come stringhe, numeri, elenchi e dict vengono serializzati automaticamente in JSON, gli oggetti personalizzati (come classi o oggetti datetime) no. Il tentativo di codificare direttamente un oggetto personalizzato solleverà un `TypeError`. Per superare questo problema, gli sviluppatori devono creare una classe di codifica personalizzata che erediti da "json.JSONEncoder" e sovrascriva il metodo ".default()" per serializzare le classi in dizionari leggibili. Padroneggiare la manipolazione di JSON è fondamentale per comunicare con servizi Web esterni.
Codice e output di esecuzione
Convertire un dizionario in una stringa JSON e analizzarlo nuovamente utilizzando la libreria json integrata.
import json
# Python Dictionary representing a user profile
user_profile = {
"name": "Alex",
"is_premium": True,
"skills": ["Python", "Docker"],
"age": 28
}
# Serialize dictionary to JSON string
json_string = json.dumps(user_profile, indent=2)
print("--- JSON String ---")
print(json_string)
# Deserialize JSON string back to dictionary
parsed_dict = json.loads(json_string)
print("\n--- Parsed Python Dictionary ---")
print(f"Name: {parsed_dict['name']}")
print(f"First Skill: {parsed_dict['skills'][0]}")--- JSON String ---
{
"name": "Alex",
"is_premium": true,
"skills": [
"Python",
"Docker"
],
"age": 28
}
--- Parsed Python Dictionary ---
Name: Alex
First Skill: PythonImplementazione passo dopo passo
- Invio di payload e lettura di dati dalle API REST
- Memorizzazione delle preferenze di configurazione all'interno dei file settings.json
- Passaggio di payload strutturati tra microservizi
Domande frequenti
Qual è la differenza tra json.dump e json.dumps?
json.dump (senza la 's') scrive i dati JSON direttamente in un flusso di file. json.dumps (con la 's') serializza i dati in una variabile stringa Python.
Come gestisci gli errori di decodifica JSON?
Avvolgi il codice di analisi in un blocco try/eccetto che cattura "json.JSONDecodeError" per gestire con garbo le stringhe JSON non valide.
Argomenti correlati
Dizionari principali di Python. Impara a archiviare, recuperare e gestire i dati delle coppie chiave-valore. Comprendere le prestazioni e le best practice per le mappature.
I/O di file PythonScopri come leggere e scrivere file in Python. Padroneggia open(), read(), write() e i gestori di contesto per gestire le operazioni sui file in modo sicuro senza perdite di risorse.
Python CSVScopri come gestire i dati CSV in Python. Master csv.reader, csv.writer e DictReader/DictWriter per un'analisi efficiente delle tabelle.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Come leggere e analizzare un file JSON in Python
Scopri come leggere, analizzare e caricare file JSON in Python utilizzando il modulo json integrato. Padroneggia la conversione di stringhe JSON in dizionari e viceversa.
Foglio informativo sui metodi delle stringhe Python
Una guida di riferimento completa per la manipolazione delle stringhe Python. Padroneggia la formattazione, la ricerca, la divisione, la sostituzione e il controllo delle proprietà delle stringhe.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.