Guida completa alla gestione dei dati JSON in Python | Dalla lettura alla scrittura

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.

Ad

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)
Ad
年収訴求

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.

Ad

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.

Ad

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.

Ad

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
Ad

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.

Ad
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール