Pitone

Come leggere e scrivere file Json in Python

Come leggere e scrivere file Json in 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, tagliati da parametri di query URL e così via. Questo articolo si concentrerà principalmente sulla lettura dei dati json da un file memorizzato localmente. Supponiamo che un “test.json" contiene i seguenti dati:

"nome in codice": "Eoan Ermine", "versione": "Ubuntu 19.10"

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

import json
con aperto ("test.json") come f:
data = json.carico (f)
dump = json.discariche (dati)
stampa (dati)
stampa (tipo (dati))
stampa (scarica)
stampa (tipo (dump))

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

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

"nome in codice": "Eoan Ermine", "versione": "Ubuntu 19.10"

Notare nell'output sopra che "json.load" legge i dati json grezzi in un dizionario Python mentre "json.dumps" converte 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 dizionari ed elenchi nidificati.

Ordinamento e stampa dei dati JSON Pretty

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

import json
con aperto ("test.json") come f:
data = json.carico (f)
dump = json.dumps(data, sort_keys=True, indent=4)
stampa (scarica)

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 str
numero int o float
vero falso Vero falso
nullo Nessuna
Vettore elenco
oggetto detto

Json.strumento Modulo della riga di comando

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

$ echo '"nome in codice": "Eoan Ermine", "version": "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.strumento con file JSON. Sostituisci "in_file" e "out_file" nel comando seguente con i valori desiderati:

$ python3 -m json.strumento in_file out_file

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

OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...