Python JSON: lettura, scrittura, analisi di JSON (con esempi)

In questo tutorial imparerai ad analizzare, leggere e scrivere JSON in Python con l'aiuto di esempi. Inoltre, imparerai a convertire JSON in dict e stamparlo abbastanza.

JSON ( J ava S cripta O bject N flottazione) è un formato di dati popolare usato per rappresentare dati strutturati. È comune trasmettere e ricevere dati tra un server e un'applicazione Web in formato JSON.

In Python, JSON esiste come stringa. Per esempio:

 p = '("name": "Bob", "languages": ("Python", "Java"))' 

È anche comune archiviare un oggetto JSON in un file.

Importa modulo json

Per lavorare con JSON (stringa o file contenente un oggetto JSON), puoi utilizzare il jsonmodulo di Python . È necessario importare il modulo prima di poterlo utilizzare.

 import json

Analizza JSON in Python

Il jsonmodulo semplifica l'analisi di stringhe JSON e file contenenti oggetti JSON.

Esempio 1: Python JSON per dettare

Puoi analizzare una stringa JSON usando il json.loads()metodo. Il metodo restituisce un dizionario.

 import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))

Qui, person è una stringa JSON e person_dict è un dizionario.

Esempio 2: Python legge il file JSON

È possibile utilizzare il json.load()metodo per leggere un file contenente un oggetto JSON.

Supponiamo di avere un file denominato person.jsonche contiene un oggetto JSON.

  ("name": "Bob", "languages": ("English", "Fench") ) 

Ecco come puoi analizzare questo file:

  import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data) 

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

Se non sai come leggere e scrivere file in Python, ti consigliamo di controllare Python File I / O.

Python Converti in stringa JSON

Puoi convertire un dizionario in una stringa JSON usando il json.dumps()metodo.

Esempio 3: converti dict in JSON

  import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json) 

Ecco una tabella che mostra gli oggetti Python e la loro conversione equivalente in JSON.

Pitone Equivalente JSON
dict oggetto
list, tuple Vettore
str corda
int, float,int numero
True vero
False falso
None nullo

Scrittura di JSON in un file

Per scrivere JSON in un file in Python, possiamo usare json.dump()method.

Esempio 4: scrittura di JSON su un file

  import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file) 

Nel programma sopra, abbiamo aperto un file denominato person.txtin modalità di scrittura utilizzando 'w'. Se il file non esiste già, verrà creato. Quindi, si json.dump()trasforma person_dictin una stringa JSON che verrà salvata nel person.txtfile.

Quando esegui il programma, il person.txtfile verrà creato. Il file contiene il seguente testo al suo interno.

 ("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)

Python piuttosto stampato JSON

Per analizzare ed eseguire il debug dei dati JSON, potrebbe essere necessario stamparli in un formato più leggibile. Questo può essere fatto passando parametri aggiuntivi indente sort_keysa json.dumps()e json.dump()metodo.

Esempio 5: Python piuttosto stampato JSON

  import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True)) 

Quando esegui il programma, l'output sarà:

 ("languages": "English", "name": "Bob", "numbers": (2, 1.6, null)) 

Nel programma sopra, abbiamo usato gli 4spazi per il rientro. E le chiavi sono ordinate in ordine crescente.

A proposito, il valore predefinito di indent è None. E il valore predefinito di sort_keys è False.

Letture consigliate:

  • Python JSON in CSV e viceversa
  • Python XML in JSON e viceversa
  • Python simplejson

Articoli interessanti...