HOWTO · Pandas
Converti Pandas DataFrame in JSON
Questo tutorial mostra come convertire un Pandas DataFrame in una stringa JSON.
In questa pagina
JSON sta per JavaScript Object Notation. Si basa sul formato degli oggetti in JavaScript ed è una tecnica di codifica per rappresentare i dati strutturati. È ampiamente utilizzato in questi giorni, soprattutto per la condivisione di dati tra server e applicazioni web.
In questo articolo introdurremo come convertire un DataFrame in una stringa JSON.
Lavoreremo con il seguente DataFrame:
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
print(df)
Produzione:
Name Age Course
0 Jay 16 BBA
1 Jack 19 BTech
2 Mark 18 BSc
Pandas DataFrame ha un metodo dataframe.to_json() che converte un DataFrame in una stringa JSON o lo memorizza come file JSON esterno. Il formato JSON finale dipende dal valore del parametro orient, che è 'columns' per impostazione predefinita ma può essere specificato come 'records', 'index', 'split', 'table', e 'values'.
Tutti i formati sono trattati di seguito:
orient = 'columns'
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
js = df.to_json(orient="columns")
print(js)
Produzione:
{"Name":{"0":"Jay","1":"Jack","2":"Mark"},
"Age":{"0":16,"1":19,"2":18},
"Course":{"0":"BBA","1":"BTech","2":"BSc"}}
orient = 'records'
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
js = df.to_json(orient="records")
print(js)
Produzione:
[{"Name":"Jay","Age":16,"Course":"BBA"},{"Name":"Jack","Age":19,"Course":"BTech"},{"Name":"Mark","Age":18,"Course":"BSc"}]
orient = 'index'
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
js = df.to_json(orient="index")
print(js)
Produzione:
{"0":{"Name":"Jay","Age":16,"Course":"BBA"},
"1":{"Name":"Jack","Age":19,"Course":"BTech"},
"2":{"Name":"Mark","Age":18,"Course":"BSc"}}
orient = 'split'
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
js = df.to_json(orient="split")
print(js)
Produzione:
{"columns":["Name","Age","Course"],
"index":[0,1,2],
"data":[["Jay",16,"BBA"],["Jack",19,"BTech"],["Mark",18,"BSc"]]}
orient = 'table'
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
js = df.to_json(orient="table")
print(js)
Produzione:
{"schema": {"fields":[{"name":"index","type":"integer"},{"name":"Name","type":"string"},{"name":"Age","type":"integer"},{"name":"Course","type":"string"}],"primaryKey":["index"],"pandas_version":"0.20.0"}, "data": [{"index":0,"Name":"Jay","Age":16,"Course":"BBA"},{"index":1,"Name":"Jack","Age":19,"Course":"BTech"},{"index":2,"Name":"Mark","Age":18,"Course":"BSc"}]}
Come discusso in precedenza, possiamo anche esportare il JSON direttamente in un file esterno. Può essere fatto come mostrato di seguito fornendo il percorso del file nella funzione dataframe.to_json().
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
df.to_json("path\example.json", orient="table")
Il codice precedente esporta un file JSON nel percorso specificato.