Leggi, scrivi e analizza JSON utilizzando Python

Leggi, scrivi e analizza JSON utilizzando Python

JSON è un formato dati leggero per lo scambio di dati che può essere facilmente letto e scritto dagli esseri umani e facilmente analizzato e generato dalle macchine. È un formato di testo completo e indipendente dalla lingua. Per lavorare con i dati JSON, Python ha un pacchetto integrato chiamato JSON.

Esempio di stringa JSON

s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}' 

La sintassi di JSON è considerato un sottoinsieme della sintassi di JavaScript compreso quanto segue:

  • Coppie Nome/Valore: Rappresenta Data, il nome è seguito da due punti ( : ) e le coppie Nome/Valore sono separate da una virgola( , ).
  • Parentesi graffe: Contiene oggetti.
  • Parentesi quadre: Contiene array con valori separati da una virgola ( , ).

Le chiavi/il nome devono essere stringhe con virgolette doppie e i valori devono essere tipi di dati tra i seguenti:

Esempio di file JSON:

 {  'employee': [  {  'id': '01',  'name': 'Amit',  'department': 'Sales'  },  {  'id': '04',  'name': 'sunil',  'department': 'HR'  }  ] } 

Python analizza la stringa JSON

Nel codice seguente, convertiremo JSON in un oggetto Python. Per analizzare la stringa JSON Python innanzitutto importiamo il modulo JSON. Abbiamo una stringa JSON memorizzata in una variabile 'dipendente' e convertiamo questa stringa JSON in un oggetto Python utilizzando json.loads() metodo del modulo JSON in Python. Successivamente, stampiamo il nome di un dipendente utilizzando la chiave 'nome' .

Python3




# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> print> (employee_dict)> print> (employee_dict[> 'name'> ])>

Produzione

{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin 

Python legge il file JSON

Supponiamo di avere un file JSON simile a questo.

pyhton-append-json1

Qui abbiamo utilizzato la funzione open() per leggere il file JSON. Quindi, il file viene analizzato utilizzando il metodo json.load() che ci fornisce un dizionario denominato data.

Python3




import> json> # Opening JSON file> f> => open> (> 'data.json'> ,)> # returns JSON object as> # a dictionary> data> => json.load(f)> # Iterating through the json> # list> for> i> in> data[> 'emp_details'> ]:> > print> (i)> # Closing file> f.close()>

Produzione:

python-read-json-output1

Converti Python Dict in JSON

Nel codice seguente, stiamo convertendo a Dizionario Python a un oggetto JSON utilizzando json.dumps() metodo del modulo JSON in Python. Per prima cosa importiamo il modulo JSON e poi creiamo un piccolo dizionario con alcune coppie chiave-valore e poi lo passiamo al metodo json.dumps() con 'indent=4' per convertire questo dizionario Python in un oggetto JSON. Poiché abbiamo assegnato il valore del rientro a 4, ci sono quattro spazi bianchi prima di ciascun dato, come mostrato nell'output.

Python3




# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary> => {> > 'id'> :> '04'> ,> > 'name'> :> 'sunil'> ,> > 'department'> :> 'HR'> }> > # Serializing json> json_object> => json.dumps(dictionary, indent> => 4> )> print> (json_object)>

Produzione

{ 'id': '04', 'name': 'sunil', 'department': 'HR' } 

I seguenti tipi di oggetti Python possono essere convertiti in stringhe JSON:

Oggetti Python e la loro conversione equivalente in JSON:

Pitone

Equivalente JSON

dict

oggetto

lista, tupla

vettore

stra

corda

int, float

numero

VERO

VERO

Falso

falso

Nessuno

nullo

Scrivere JSON su un file in Python

Possiamo scrivere JSON su file utilizzando la funzione json.dump() del modulo JSON e la gestione dei file in Python. Nel programma seguente, abbiamo aperto un file denominato sample.json in modalità scrittura utilizzando 'In' . Il file verrà creato se non esiste. Json.dump() trasformerà il dizionario Python in una stringa JSON e verrà salvato nel file sample.json.

Python3




# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary> => {> > 'name'> :> 'sathiyajith'> ,> > 'rollno'> :> 56> ,> > 'cgpa'> :> 8.6> ,> > 'phonenumber'> :> '9976770500'> }> > with> open> (> 'sample.json'> ,> 'w'> ) as outfile:> > json.dump(dictionary, outfile)>

Produzione:

python-json-write-to-file

Python Pretty Stampa JSON

Quando convertiamo una stringa in JSON i dati sono in un formato meno leggibile. Per renderlo più leggibile possiamo usare la stampa carina passando argomenti aggiuntivi nella funzione json.dumps() come trattino E sort_keys come utilizzato nel codice seguente.

Python3




# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> # Pretty Printing JSON string back> print> (json.dumps(employee_dict, indent> => 4> , sort_keys> => True> ))>

Produzione

{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }