Articolo originale: https://www.freecodecamp.org/news/python-json-how-to-convert-a-string-to-json/

In questo tutorial, imparerai le basi del JSON – cos'è, dov'è maggiormente usato e la sua sintassi.

Vedrai anche come convertire una stringa in JSON con Python.

Iniziamo!

Cos'è il JSON?

JSON sta per JavaScript Object Notation.

Si tratta di un formato di dati usato per archiviare e trasferire informazioni per le applicazioni web.

Il formato JSON si ispira al linguaggio di programmazione JavaScript, ma non è legato a un solo linguaggio.

La maggior parte dei moderni linguaggi di programmazione possiede delle librerie per elaborare e generare dati in JSON.

Dove viene usato il JSON?

Il JSON è principalmente usato per inviare e ricevere dati tra server e client, dove il client è una pagina o una applicazione web.

In confronto al complicato e meno compatto XML, che era il formato scelto negli anni passati, il JSON è un formato molto più affidabile da utilizzare durante il ciclo di utilizzo richiesta-risposta delle applicazioni web in connessione su una rete.

Sintassi JSON di base

In JSON, i dati sono scritti come coppie chiave-valore, in questo modo:

"first_name": "Katie"

I dati sono racchiusi da virgolette doppie e le chiavi e i valori sono separati da due punti.

Le coppie chiave-valore vengono separate da una virgola:

"first_name": "Katie", "last_name": "Rodgers"

L'esempio qui sopra mostra un oggetto, un insieme di più coppie chiave-valore.

Gli oggetti sono racchiusi da parentesi graffe:

{
    "first_name": "Katie",  
    "last_name": "Rodgers"
}

In JSON, è possibile anche creare array, liste ordinate di valori. In tal caso, gli array sono contenuti in parentesi quadre:

[
  { 
      
    "first_name": "Katie",  
    "last_name": "Rodgers"
  },
  
  { 
      
    "first_name": "Naomi",  
    "last_name": "Green"
  },
]

// o:


{
 "employee": [
     { 
    "first_name": "Katie",  
    "last_name": "Rodgers"
  },
  
  { 
    "first_name": "Naomi",  
    "last_name": "Green"
  },
 ]
}

//Crea un oggetto 'employee' con 2 entrate.
// Definisce first_name e last_name di employee

Come lavorare con i dati JSON in Python

Includi il modulo JSON per Python

Per usare il JSON con Python, occorre prima includere il modulo JSON in cima al tuo file Python. Questo modulo è integrato in Python e fa parte della libreria standard.

Quindi, ipotizziamo di avere un file chiamato demo.py. In cima a questo file, occorre aggiungere la seguente riga:

import json

Usa la funzione json.loads()

Se nel tuo programma hai una stringa di dati JSON come questa:

#include la libreria json
import json

#stringa di dati json
employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}'

#verifica il tipo di dato con il metodo type()
print(type(employee_string))

#output
#<class 'str'>

puoi trasformarla in JSON con Python usando la funzione json.loads().

La funzione json.loads() accetta come input una stringa valida e la converte in un dizionario Python.

Questo processo è detto deserializzazione – l'atto di convertire una stringa in un oggetto.

#include la libreria json
import json

#stringa di dati json
employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}'

#verifica il tipo di dato con il metodo type()
print(type(employee_string))

#converte la stringa in oggetto
json_object = json.loads(employee_string)

#verifica il nuovo tipo di dato
print(type(json_object))

#output
#<class 'dict'>

Puoi accedere a ogni singolo elemento come faresti normalmente con un dizionario Python:

#include la libreria json
import json

#stringa di dati json
employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}'

#verifica il tipo di dato con il metodo type()
print(type(employee_string))

#converte la stringa in oggetto
json_object = json.loads(employee_string)

#verifica il nuovo tipo di dato
print(type(json_object))

#output
#<class 'dict'>

#accede a first_name nel dizionario
print(json_object["first_name"])

#output
#Michael

Vediamo un altro esempio:

1. Prendiamo una stringa di dati JSON:

import json

#stringa json
employees_string = '''
{
    "employees": [
       {
           "first_name": "Michael", 
           "last_name": "Rodgers", 
           "department": "Marketing"
        },
       {
           "first_name": "Michelle", 
           "last_name": "Williams", 
           "department": "Engineering"
        }
    ]
}
'''

#verifica il tipo di dato usando il metodo type()
print(type(employees_string))

#output
#<class 'str'>

2. Usiamo la funzione json.loads() per convertire la stringa in un oggetto:

import json

emoloyees_string = '''
{
    "employees" : [
       {
           "first_name": "Michael", 
           "last_name": "Rodgers", 
           "department": "Marketing"
        },
       {
           "first_name": "Michelle", 
           "last_name": "Williams", 
           "department": "Engineering"
        }
    ]
}
'''

data = json.loads(employees_string)

print(type(data))
#output
#<class 'dict'>

3. Accediamo ai dati:

import json

employees_string = '''
{
    "employees" : [
       {
           "first_name": "Michael", 
           "last_name": "Rodgers", 
           "department": "Marketing"
           
        },
       {
           "first_name": "Michelle", 
           "last_name": "Williams", 
           "department": "Engineering"
        }
    ]
}
'''

data = json.loads(employees_string)

print(type(data))
#output
#<class 'dict'>

#accede a first_name
for employee in data["employees"]: 
    print(employee["first_name"])
    
#output
#Michael
#Michelle

Conclusione

E il gioco è fatto – adesso conosci le basi per poter usare il formato JSON in Python.

Se vuoi imparare di più su Python, freeCodeCamp ha una Certificazione Python che tratta concetti fondamentali come variabili, loop e funzioni fino ad argomenti più avanzati come le strutture di dati. Alla fine dovrai realizzare 5 progetti.

Grazie per aver letto questo articolo e buon apprendimento!