- 1 1. Che cos’è JSON?
- 2 2. Metodo base per leggere file JSON in Python
- 3 3. Come leggere stringhe JSON in Python
- 4 4. Considerazioni importanti e gestione degli errori nella lettura di file JSON
- 5 5. Gestione efficiente di grandi dati JSON in Python
- 6 6. Utilizzo dei dati JSON dopo averli convertiti in un dizionario Python
- 7 7. Scrivere dati JSON in Python
1. Che cos’è JSON?
Panoramica di JSON
JSON (JavaScript Object Notation) è un formato leggero e altamente efficiente per lo scambio di dati. Viene utilizzato principalmente per la comunicazione tra applicazioni web e server. Sebbene JSON sia basato su JavaScript, è supportato da quasi tutti i linguaggi di programmazione. Gioca un ruolo cruciale nel recuperare e inviare dati tramite le API.
Struttura di JSON
JSON è composto da coppie chiave‑valore, con i dati racchiusi tra parentesi graffe {}. Ecco un semplice esempio:
{
"name": "John",
"age": 30,
"isStudent": false,
"courses": ["Math", "Physics", "Chemistry"]
}
Questa struttura è altamente flessibile e può includere liste e oggetti nidificati.
2. Metodo base per leggere file JSON in Python
Introduzione alla libreria json di Python
Python fornisce una libreria json integrata, rendendo facile gestire i file JSON senza installazioni aggiuntive. Questa libreria include funzioni fondamentali per leggere e scrivere dati JSON.
Come leggere un file JSON
Usiamo la funzione json.load() per leggere i dati da un file. Il seguente esempio dimostra come caricare JSON da un file e lavorare con esso come un dizionario.
import json
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
print(data)
3. Come leggere stringhe JSON in Python
Uso della funzione json.loads()
Per convertire dati JSON in formato stringa in un dizionario Python, usa la funzione json.loads(). Questo è comunemente usato quando si elaborano risposte API contenenti stringhe JSON.
import json
json_string = '{"name": "Alice", "age": 25, "city": "Tokyo"}'
data = json.loads(json_string)
print(data)
Questo metodo ti consente di trasformare facilmente le stringhe JSON in dizionari.

4. Considerazioni importanti e gestione degli errori nella lettura di file JSON
Errori comuni e soluzioni
Uno degli errori più comuni nella lettura di un file JSON è JSONDecodeError. Questo si verifica quando il file non è in un formato JSON valido. Una corretta gestione degli errori è fondamentale per identificare e risolvere i problemi.
import json
try:
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
except json.JSONDecodeError as e:
print(f"JSON Load Error: {e}")
Problemi di codifica
Quando si gestiscono file JSON contenenti caratteri non ASCII, come il testo giapponese, specificare encoding='utf-8' aiuta a prevenire la corruzione dei caratteri.
5. Gestione efficiente di grandi dati JSON in Python
Elaborazione dei dati a basso consumo di memoria
Caricare interi file JSON di grandi dimensioni in memoria può causare carenze di memoria. Per evitarlo, è consigliato utilizzare librerie di streaming come ijson.
import ijson
with open('large_file.json', 'r', encoding='utf-8') as f:
for item in ijson.items(f, 'item'):
print(item)
L’uso di ijson consente un’elaborazione efficiente di dati su larga scala.
6. Utilizzo dei dati JSON dopo averli convertiti in un dizionario Python
Operazioni di base sui dizionari
Convertire JSON in un dizionario rende la manipolazione dei dati molto più semplice. Ad esempio, puoi recuperare valori per chiavi specifiche, aggiornare dati o aggiungere nuove coppie chiave‑valore.
# Example of dictionary operations
print(data['name']) # Outputs 'Alice'
data['age'] = 26 # Updating a value
data['email'] = 'alice@example.com' # Adding a new key-value pair
7. Scrivere dati JSON in Python
Scrivere dati in un file JSON
Per scrivere un dizionario Python come dati JSON e salvarlo in un file, usa la funzione json.dump(). Questo ti permette di memorizzare facilmente i dati modificati.
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4, ensure_ascii=False)
L’opzione indent=4 formatta l’output per una migliore leggibilità, mentre ensure_ascii=False garantisce che i caratteri non ASCII (come il testo giapponese) vengano preservati correttamente.



![[Guida completa al dataclass di Python] Uso pratico con ottimizzazione della memoria e validazione](https://www.python.digibeatrix.com/wp-content/uploads/2024/09/09e51f14aba9065c46a063f88acd6092-375x375.webp)
![[Guida completa al ordinamento delle liste in Python] Spiegazione approfondita del metodo sort() e della funzione sorted()](https://www.python.digibeatrix.com/wp-content/uploads/2024/09/060bcc567bd2246d82103c138e09e66a-375x375.webp)