Come convertire il JSON in un oggetto Python? È quello che vedremo assieme in questo articolo!
Il JSON permette di gestire in modo molto rapido, semplice e diretto diverse informazioni: permette anche di leggerle e di gestirle su diversi applicativi e linguaggi di programmazione senza troppi sforzi.
Python non è escluso da tutto questo.
Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!
Python, vista la sua “malleabilità”, permette di gestire in maniera molto diretta e semplice il JSON.
Ovviamente se sei qua, ti stai chiedendo come convertire il JSON in un oggetto a tutti gli effetti: scopriamolo assieme.
Un package che può tutto: json
In Python possiamo usare un package che si chiama semplicemente… json.
Questo package ci permette di convertire il JSON vero e proprio in un oggetto Python: indovina?
Gli oggetti vengono convertiti direttamente sia come dizionari sia come liste.
Non c’è bisogno di fare parsing aggiuntivo oppure conversioni: il package si occupa di tutto questo.
Ah giusto: te lo devo dire per completezza.
Il JSON può provenire da una stringa, da un file, da una richiesta HTTP delle tue API: al package non importa 😉
Loads: il metodo per convertire il JSON in un oggetto Python
Vediamo allora il metodo “loads”: è lui che ci permette di eseguire questa conversione.
Partiamo da un esempio.
Abbiamo il seguente JSON:
{
"tags": [
"incididunt",
"cillum",
"dolore"
],
"friends": [
{
"id": 0,
"name": "Corrine Chang"
},
{
"id": 1,
"name": "Florence Guzman"
}
],
"greeting": "Hello, Hoover Hawkins! You have 9 unread messages."
}
C’è di tutto: oggetti, stringhe, numeri, liste.
Ora, creo una variabile di tipo stringa per contenere questo JSON:
dati_json='{ "tags": [ "incididunt", "cillum", "dolore" ], "friends": [ { "id": 0, "name": "Corrine Chang" }, { "id": 1, "name": "Florence Guzman" } ], "greeting": "Hello, Hoover Hawkins! You have 9 unread messages." }'
Sì, per semplicità ho messo tutto in single line, ma ora vediamo come convertirlo in un oggetto Python a tutti gli effetti:
import json
dati_json='{ "tags": [ "incididunt", "cillum", "dolore" ], "friends": [ { "id": 0, "name": "Corrine Chang" }, { "id": 1, "name": "Florence Guzman" } ], "greeting": "Hello, Hoover Hawkins! You have 9 unread messages." }'
oggetto_python_json=json.loads(dati_json)
Ora, la conversione attuata tramite il metodo “loads”, ha reso il nostro oggetto Python un dizionario e di fatto le chiavi che c’erano nel JSON, diventano le “keys” del nostro nuovo dict.
Permettimi di mostrarti alcuni esempi in tempo reale per farti vedere come puoi sfruttare al 100% una lettura e una “rivoltatura come un calzino” a tutti gli effetti del JSON stesso:
>>> oggetto_python_json=json.loads(dati_json)
>>> oggetto_python_json['greeting']
'Hello, Hoover Hawkins! You have 9 unread messages.'
>>> oggetto_python_json['friends'][1]
{'id': 1, 'name': 'Florence Guzman'}
>>> print([tag for tag in oggetto_python_json['tags']])
['incididunt', 'cillum', 'dolore']
In altre parole, eccoti come puoi convertire del JSON in un Python object vero e proprio.
Ah ma prima di salutarti, ti invito a leggere questo mio articolo legato all’uso del JSON in Python!