Come leggere e scrivere file Json in Python

How Read Write Json Files Python



Questo articolo spiegherà come gestire file e dati JSON nel linguaggio di programmazione Python. Python viene fornito con un modulo json integrato che rende la gestione dei dati JSON facile e diretta.

Informazioni su JSON

JSON (JavaScript Object Notation) è un formato file e uno standard di archiviazione dati che utilizza coppie chiave-valore per archiviare e scambiare dati. È il formato di scambio dati più utilizzato, spesso presente nelle API RESTful, nei database leggeri, nei file di configurazione e in altri software offline o online che devono archiviare, recuperare e scambiare dati. La maggior parte dei linguaggi di programmazione include librerie per analizzare e scrivere dati JSON per impostazione predefinita e JSON è un formato di dati indipendente dal linguaggio di programmazione. I valori archiviati in un file JSON o payload di solito contengono stringhe, numeri e tipi di dati serializzabili come elenchi (array).







Dizionari JSON e Python

I dati JSON in Python vengono convertiti in un oggetto dizionario utilizzando il metodo load. Si vede spesso che alcune persone equiparano i dati json e un dizionario Python, poiché la sintassi per definire entrambi è quasi la stessa. Tuttavia, i dati json non sono altro che una stringa di testo strutturata in una sintassi rigida mentre un dizionario Python è un oggetto struttura dati archiviato in memoria. Se vuoi memorizzare i dati del dizionario in un file di testo o inviarlo a un altro programma non Python, dovrai prima convertirlo in una stringa di testo (byte). Questa stringa di testo scaricata/convertita è definita nella sintassi standard di JSON e il processo di conversione di un dizionario Python in una stringa compatibile con JSON è chiamato serializzazione.



Lettura e dump di dati JSON in Python

I dati JSON possono essere recuperati come risposta da un server, letti da file, suddivisi da parametri di query URL e così via. Questo articolo si concentrerà principalmente sulla lettura dei dati json da un file archiviato localmente. Supponiamo che un file test.json contenga i seguenti dati:



{'nome in codice': 'Eoan Ermine', 'versione': 'Ubuntu 19.10'}

Per leggere il file test.json in python, puoi utilizzare il codice seguente:





importarejson

insieme a aprire ('prova.json') comeF:
dati=json.carico(F)

scarico=json.discariche(dati)

Stampa (dati)
Stampa (genere(dati))
Stampa (scarico)
Stampa (genere(scarico))

La prima riga nel codice sopra importa il modulo json. Nella riga successiva, con open viene utilizzato per leggere in sicurezza il contenuto del file. All'interno del blocco with open, viene utilizzato il metodo json.load per leggere e memorizzare il contenuto del file nella variabile di dati. I dati caricati nel passaggio precedente vengono riconvertiti in stringa json utilizzando il metodo json.dump. L'esecuzione del codice sopra mostrerà il seguente output:

{'nome in codice':'Eoan Ermellino', 'versione':'Ubuntu 19.10'}
<classe 'dettare'>
{'nome in codice':'Eoan Ermellino', 'versione':'Ubuntu 19.10'}
<classe 'str'>

Nota nell'output sopra che il metodo json.load legge i dati json non elaborati in un dizionario Python mentre i metodi json.dumps convertono un dizionario in una stringa compatibile con la struttura JSON. Una volta che un oggetto JSON è stato convertito in un oggetto dizionario Python, puoi utilizzare i metodi del dizionario Python integrati per gestire i dati. L'esempio sopra è piuttosto semplice e non include array nei dati JSON o valori nidificati. Tuttavia, all'interno di Python, puoi gestire questi valori come qualsiasi altro elenco ed elenco nidificati.



Ordinamento e stampa dei dati JSON Pretty

Il metodo json.dump supporta alcuni parametri facoltativi per l'ordinamento delle chiavi e la stampa dell'output per una migliore leggibilità.

importarejson

insieme a aprire ('prova.json') comeF:
dati=json.carico(F)

scarico=json.discariche(dati,sort_keys=Vero,rientro=4)
Stampa (scarico)

Il codice sopra mostrerà il seguente output:

{
'nome in codice': 'Eoan Ermine',
'versione': 'Ubuntu 19.10'
}

Conversioni del tipo di dati

L'elenco seguente illustra come i valori JSON vengono convertiti in oggetti Python e viceversa.

JSON Pitone
corda P
numero int o float
vero falso Vero falso
nullo Nessuno
Vettore elenco
oggetto detto

Modulo a riga di comando Json.tool

Python include una bella utility da riga di comando json.tool che può essere utilizzata per convalidare e stampare stringhe e file JSON.

$ eco'{'nome in codice': 'Eoan Ermine', 'versione': 'Ubuntu 19.10'}'| python3 -m json.attrezzo

L'esecuzione del comando sopra ti mostrerà il seguente output:

{
'nome in codice': 'Eoan Ermine',
'versione': 'Ubuntu 19.10'
}

Puoi anche usare json.tool con i file JSON. Sostituisci in_file e out_file nel comando seguente con i valori desiderati:

$ python3 -m json.attrezzoin_file out_file

Oltre a stampare, ordinare e convalidare i dati JSON, json.tool non fa nient'altro. Quindi, se vuoi manipolare qualsiasi dato JSON, devi scrivere il tuo codice personalizzato utilizzando il modulo JSON integrato.