Lavorare con i dati JSON in Python
JSON (JavaScript Object Notation) è un formato dati leggero utilizzato per lo scambio di dati tra un server e un client. È comunemente utilizzato nelle applicazioni Web per inviare e ricevere dati. Python fornisce un modulo integrato denominato json
che semplifica l'utilizzo dei dati JSON. Questo articolo ti guiderà attraverso le basi dell'utilizzo dei dati JSON in Python, tra cui la lettura, la scrittura e la manipolazione di oggetti JSON.
Che cosa è JSON?
JSON è un formato basato su testo, facile da leggere e scrivere sia per gli esseri umani che per le macchine. È costituito da coppie chiave-valore, simili ai dizionari Python. Un tipico oggetto JSON si presenta così:
{
"name": "Alice",
"age": 30,
"city": "New York",
"is_student": false,
"skills": ["Python", "JavaScript", "SQL"]
}
Importazione del modulo JSON
Il modulo json
è incluso nella libreria standard di Python, quindi non devi installare nulla. Basta importarlo all'inizio del tuo script:
import json
Lettura dei dati JSON
Puoi leggere i dati JSON da una stringa o da un file. Il metodo json.loads()
viene utilizzato per analizzare i dati JSON da una stringa, mentre json.load()
viene utilizzato per leggere i dati JSON da un file.
Lettura di JSON da una stringa
Per leggere JSON da una stringa, utilizzare il metodo json.loads()
, che converte la stringa JSON in un dizionario Python.
# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)
print(data)
print(data['name']) # Output: Alice
Lettura di JSON da un file
Per leggere i dati JSON da un file, usa il metodo json.load()
. Questo metodo legge il contenuto di un file e lo converte in un dizionario Python.
# Example of reading JSON from a file
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Scrittura di dati JSON
Puoi scrivere dati JSON in una stringa o in un file. Il metodo json.dumps()
viene utilizzato per convertire un oggetto Python in una stringa JSON, mentre json.dump()
viene utilizzato per scrivere dati JSON in un file.
Scrittura di JSON in una stringa
Per scrivere JSON in una stringa, utilizzare il metodo json.dumps()
, che converte un dizionario Python in una stringa JSON.
# Example of writing JSON to a string
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
json_string = json.dumps(data)
print(json_string)
Scrittura di JSON in un file
Per scrivere dati JSON in un file, usa il metodo json.dump()
. Questo metodo prende un oggetto Python e lo scrive in un file in formato JSON.
# Example of writing JSON to a file
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
with open('output.json', 'w') as file:
json.dump(data, file)
Stampa nitida dei dati JSON
Il metodo json.dumps()
ha diversi parametri che consentono di formattare i dati JSON per una migliore leggibilità. Il parametro indent
specifica il numero di spazi da utilizzare per l'indentazione, mentre il parametro sort_keys
ordina le chiavi nell'output.
# Example of pretty-printing JSON data
data = {
"name": "Charlie",
"age": 35,
"city": "Chicago"
}
json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)
Conversione tra tipi di dati JSON e Python
Il modulo json
di Python può gestire diversi tipi di dati e convertirli tra JSON e Python. Ecco un rapido riferimento:
dict
(Python) inobject
(JSON)elenco
(Python) inarray
(JSON)str
(Python) instring
(JSON)int
,float
(Python) anumero
(JSON)Da True
,False
(Python) atrue
,false
(JSON)None
(Python) anull
(JSON)
Gestione degli errori JSON
Quando si lavora con JSON, possono verificarsi errori dovuti a formattazione non corretta o dati inaspettati. Il modulo json
solleva eccezioni come JSONDecodeError
quando incontra tali problemi. Utilizzare i blocchi try
e except
per gestire questi errori con eleganza.
# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"' # Missing closing brace
try:
data = json.loads(json_string)
except json.JSONDecodeError as e:
print(f"Error decoding JSON: {e}")
Conclusione
Lavorare con i dati JSON è un'abilità fondamentale per gli sviluppatori Python, specialmente nello sviluppo web e nella scienza dei dati. Il modulo json
fornisce metodi facili da usare per leggere, scrivere e manipolare i dati JSON. Padroneggiando queste tecniche, puoi gestire in modo efficiente i dati JSON nelle tue applicazioni Python.