Leggere JSON in Pandas

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.

Corsi correlati

Design Pattern per videogiochi

I Design Pattern sono soluzioni a problemi comuni che si incontrano nello sviluppo del software. Nel contesto dei videogiochi, questi pattern possono aiutare a gestire la complessità crescente dei giochi moderni. Sei appassionato di videogiochi? Hai mai pensato a come vengono progettati e sviluppati? Sei curioso di scoprire i segreti dietro la creazione dei tuoi giochi preferiti? Allora sei nel posto giusto! Questo corso è stato progettato per fornirti una solida comprensione dei Design Pattern, strumenti fondamentali per ogni sviluppatore di giochi. Attraverso esempi pratici e realistici, esploreremo insieme come questi pattern possono aiutarti a creare giochi più efficienti, flessibili e mantenibili.

Corso Fondamenti di Python

Python, uno dei linguaggi di programmazione più popolari al mondo, è ampiamente utilizzato da colossi dell’informatica e della tecnologia come Google, la Nasa e Mozilla.
Questo corso sui fondamenti di Python esplorerà le ragioni del suo successo duraturo. Impareremo la potente ed espressiva sintassi di Python, che consente di ottenere risultati impressionanti con poche righe di codice.

Blender Masterclass 2

I paesaggi, in generale, possono risultare intimidatori data la loro complessità, costituita da numerosi elementi che sembrano formare qualcosa di virtualmente infinito. Durante le lezioni di questo corso, ci concentreremo su una scomposizione delle diverse fasi coinvolte nella creazione di una scena, affrontandole una alla volta attraverso passi graduati.

Blender Masterclass 1

In questo corso di Blender 3D, Masha, in collaborazione con Gedemy, vi mostrerà il processo di modellazione, UV mapping, shading, e texture painting di un asset. Una volta apprese le basi, vedremo anche come effettuare il baking delle textures e la preparazione con successivo export della mesh in modo che possa essere utilizzabile all’interno di un qualsiasi altro software.

Crea il tuo account gratuito Gedemy

Gedemy è la prima piattaforma di formazione italiana che ti permette di sviluppare competenze in ambiti come Game Design, Programming, Arte, 3D, Tech, AI e molto altro.