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 json
modulo di Python . È necessario importare il modulo prima di poterlo utilizzare.
import json
Analizza JSON in Python
Il json
modulo 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.json
che 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.txt
in modalità di scrittura utilizzando 'w'
. Se il file non esiste già, verrà creato. Quindi, si json.dump()
trasforma person_dict
in una stringa JSON che verrà salvata nel person.txt
file.
Quando esegui il programma, il person.txt
file 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 indent
e sort_keys
a 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 4
spazi 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