Quando si inizia a lavorare con i dati in Python, uno dei passaggi più comuni è leggere JSON in Pandas. Il formato JSON è estremamente diffuso perché è semplice da leggere, flessibile e molto usato nelle API, nei file di configurazione e negli scambi di dati tra applicazioni. Con Pandas, importare queste informazioni e trasformarle in un DataFrame è un’operazione piuttosto immediata, anche per chi è alle prime armi.
In questa guida di Gedemy vedremo come caricare un file JSON esistente, come creare un DataFrame manualmente per poi esportarlo in JSON e come indicare un percorso personalizzato per leggere correttamente i file. L’obiettivo è offrirti una panoramica pratica, chiara e subito applicabile.
Come importare Pandas in Python
Prima di poter lavorare con i file JSON, bisogna naturalmente importare la libreria Pandas. Nella maggior parte dei casi si utilizza l’alias pd, che rende il codice più veloce da scrivere e più leggibile.
import pandas as pd
Se Pandas non è ancora installato nel tuo ambiente, puoi aggiungerlo con il gestore pacchetti di Python. Questo passaggio è fondamentale, perché tutte le operazioni che vedremo nelle prossime sezioni si basano proprio sulle funzioni offerte da questa libreria.
pip install pandas
Una volta completata l’installazione e l’importazione, sei pronto per leggere json pandas in modo semplice e ordinato.
Come caricare un file JSON già esistente con Pandas
Il modo più diretto per leggere un file JSON in Pandas è usare la funzione read_json(). Questo metodo consente di importare i dati e convertirli automaticamente in un DataFrame, cioè una struttura tabellare molto comoda da analizzare.
Immaginiamo di avere un file chiamato dati.json. Possiamo leggerlo così:
import pandas as pd
df = pd.read_json("dati.json")
print(df)
Con queste poche righe, Pandas apre il file, interpreta il contenuto JSON e lo trasforma in una tabella. È una soluzione particolarmente utile quando si ricevono dati da una fonte esterna e si vuole iniziare subito a filtrarli, ordinarli o analizzarli.
Ad esempio, se il file JSON contiene una struttura come questa:
[
{"nome": "Luca", "eta": 28, "citta": "Milano"},
{"nome": "Sara", "eta": 32, "citta": "Roma"},
{"nome": "Marco", "eta": 25, "citta": "Torino"}
]
Il DataFrame risultante mostrerà ogni oggetto come una riga e ogni chiave come una colonna. Questo comportamento rende Pandas uno strumento molto pratico quando si deve lavorare con file JSON dal formato regolare.
In alcuni casi, il JSON può avere una struttura più articolata. Anche in queste situazioni Pandas offre parametri aggiuntivi, ma per iniziare il caso standard è più che sufficiente per comprendere il meccanismo di base.
Creare un DataFrame da zero ed esportarlo in formato JSON
Non sempre si parte da un file già pronto. A volte può essere utile costruire un DataFrame manualmente e poi salvarlo in JSON. Questo approccio è molto comodo, ad esempio, quando si raccolgono dati in Python e si desidera esportarli in un formato facilmente condivisibile.
Vediamo un esempio semplice:
import pandas as pd
dati = [
{"nome": "Anna", "eta": 29, "citta": "Bologna"},
{"nome": "Paolo", "eta": 41, "citta": "Napoli"},
{"nome": "Elena", "eta": 35, "citta": "Firenze"}
]
df = pd.DataFrame(dati)
print(df)
In questo caso abbiamo creato una lista di dizionari e l’abbiamo passata al costruttore di Pandas. Il risultato è una tabella perfettamente strutturata. Se ora vuoi esportarla in JSON, puoi usare il metodo to_json().
df.to_json("output.json", orient="records", indent=4)
Il parametro orient=”records” è molto usato perché salva ogni riga come un oggetto JSON separato, in una struttura intuitiva e leggibile. L’opzione indent=4, invece, migliora la formattazione del file, rendendolo più ordinato anche a occhio nudo.
Questo è uno dei flussi di lavoro più frequenti: si costruiscono i dati in memoria, si organizzano con Pandas e poi si esportano in JSON per conservarli o inviarli ad altri sistemi.
Come indicare un percorso personalizzato per leggere un file JSON
Molto spesso il file JSON non si trova nella stessa cartella dello script Python. In queste situazioni è necessario specificare un percorso personalizzato. Anche questo passaggio è importante quando si vuole leggere json pandas in progetti reali, dove i file sono spesso organizzati in directory diverse.
Se il file si trova, ad esempio, in una sottocartella chiamata data, puoi indicare il percorso in questo modo:
import pandas as pd
df = pd.read_json("data/dati.json")
print(df)
Su Windows potresti vedere percorsi con il backslash. In quel caso conviene fare attenzione alla sintassi, perché alcuni caratteri possono essere interpretati in modo speciale da Python. Un approccio semplice e sicuro è usare le stringhe raw.
import pandas as pd
df = pd.read_json(r"C:\progetti\data\dati.json")
print(df)
Specificare correttamente il percorso è spesso il dettaglio che fa la differenza tra uno script funzionante e un errore di caricamento. Quando il file non viene trovato, infatti, il problema non è quasi mai Pandas, ma il path indicato in modo scorretto.
Se lavori su progetti un po’ più ordinati, potresti anche costruire i percorsi dinamicamente, così da rendere il codice più robusto e facile da spostare da un computer all’altro.
from pathlib import Path
import pandas as pd
percorso_file = Path("data") / "dati.json"
df = pd.read_json(percorso_file)
print(df)
Questo metodo è particolarmente pulito e professionale, oltre a essere molto utile quando il progetto cresce e i file iniziano ad aumentare.