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.
Panoramica
JSON (JavaScript Object Notation) è il formato dati più popolare per API, file di configurazione e archiviazione dati. Python viene fornito con un modulo `json` integrato che rende incredibilmente semplice leggere, analizzare e scrivere dati JSON. Poiché gli oggetti JSON si mappano perfettamente sui dizionari Python e gli array JSON si mappano sugli elenchi Python, lavorare con JSON sembra nativo.
Per leggere JSON da un file esterno, si utilizza la funzione `json.load()`, che analizza un flusso di file e traduce le strutture JSON in tipi di dati Python. Se i dati JSON sono già caricati in memoria come stringa, si utilizza invece la funzione `json.loads()` (la 's' sta per stringa). La selezione della funzione corretta previene i crash del parser.
Quando si lavora con JSON, è consigliabile gestire la codifica e i potenziali errori di formattazione. L'uso di `encoding="utf-8"` all'interno dell'istruzione `open()` protegge il tuo script da errori con caratteri speciali. Il confezionamento delle operazioni sui file in un blocco "try-Exception" che rileva "json.JSONDecodeError" garantisce che la tua app si degradi correttamente se il file JSON non ha un formato corretto.
Codice e output di esecuzione
Questo codice dimostra la scrittura di un file JSON di esempio, la sua lettura e analisi in un dizionario Python e la gestione di una stringa JSON.
import json
# Let's write a mock JSON file first
sample_data = {
"user": "developer123",
"skills": ["python", "javascript", "sql"],
"active": True
}
with open("data.json", "w", encoding="utf-8") as f:
json.dump(sample_data, f, indent=4)
# 1. Reading from a JSON file (using json.load)
with open("data.json", "r", encoding="utf-8") as file:
data_from_file = json.load(file)
print("File Content type:", type(data_from_file).__name__)
print("User skill list:", data_from_file["skills"])
# 2. Reading from a JSON string (using json.loads)
json_string = '{"host": "localhost", "port": 5432, "ssl": false}'
data_from_str = json.loads(json_string)
print("\nString Content type:", type(data_from_str).__name__)
print("Database host:", data_from_str["host"])File Content type: dict
User skill list: ['python', 'javascript', 'sql']
String Content type: dict
Database host: localhostImplementazione passo dopo passo
- Importa il modulo json integrato nel tuo script.
- Apri il file JSON utilizzando open("filename.json", "r", encoding="utf-8") come file.
- Passa l'oggetto file a json.load(file) per analizzare il contenuto in un dizionario Python.
- Utilizza json.loads(string_data) se devi analizzare una stringa JSON grezza già caricata in memoria.
Domande frequenti
Qual è la differenza tra json.load() e json.loads()?
json.load() accetta un oggetto flusso simile a file (lettura dal disco), mentre json.loads() accetta una stringa standard o un oggetto byte contenente contenuto JSON (lettura dalla memoria).
Come posso gestire gli errori di serializzazione JSON per le classi personalizzate?
Il modulo json di Python non può serializzare istanze di classi personalizzate per impostazione predefinita. È necessario fornire una classe di codifica personalizzata che estenda json.JSONEncoder o estrarre prima gli attributi dell'istanza in un dizionario utilizzando un metodo helper.
Argomenti correlati
Scopri come leggere i file in Python. Padroneggia l'istruzione open, readline, readlines e la gestione sicura delle eccezioni dei file.
Come scrivere su un file in PythonScopri come scrivere testo su file in Python. Padroneggia la differenza tra le modalità di scrittura ("w") e di aggiunta ("a") con gestori di contesto sicuri.
Come creare un dizionario in PythonScopri come creare un dizionario in Python. Comprendere la sintassi letterale, il costruttore dict, la comprensione dei dict e gli inizializzatori di valori-chiave.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
I/O di file Python
Scopri 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.
Foglio informativo sulle operazioni sui file Python
Riferimento rapido per leggere e scrivere file in Python. Padroneggia le modalità aperte, i gestori del contesto e la lettura riga per riga.
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.