In deze tutorial leer je met behulp van voorbeelden JSON in Python te ontleden, lezen en schrijven. Je zult ook leren om JSON naar dict te converteren en het mooi af te drukken.
JSON ( J ava S cript O bject N otation ) is een populair gegevensformaat dat wordt gebruikt voor het weergeven van gestructureerde gegevens. Het is gebruikelijk om gegevens tussen een server en webtoepassing in JSON-indeling te verzenden en te ontvangen.
In Python bestaat JSON als een string. Bijvoorbeeld:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Het is ook gebruikelijk om een JSON-object in een bestand op te slaan.
Importeer json-module
Om met JSON (string of bestand met JSON-object) te werken, kunt u de json
module van Python gebruiken. U moet de module importeren voordat u deze kunt gebruiken.
import json
Parse JSON in Python
De json
module maakt het gemakkelijk om JSON-strings en bestanden met JSON-objecten te parseren.
Voorbeeld 1: Python JSON om te dicteren
U kunt een JSON-reeks parseren met behulp van de json.loads()
methode. De methode retourneert een woordenboek.
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'))
Hier is person een JSON-tekenreeks en is person_dict een woordenboek.
Voorbeeld 2: Python leest JSON-bestand
U kunt de json.load()
methode gebruiken om een bestand te lezen dat een JSON-object bevat.
Stel dat u een bestand heeft met de naam person.json
dat een JSON-object bevat.
("name": "Bob", "languages": ("English", "Fench") )
Hier leest u hoe u dit bestand kunt ontleden:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Hier hebben we de open()
functie gebruikt om het json-bestand te lezen. Vervolgens wordt het bestand geparseerd met behulp van een json.load()
methode die ons een woordenboek geeft met de naam data.
Als u niet weet hoe u bestanden in Python moet lezen en schrijven, raden we u aan Python File I / O te controleren.
Python Converteren naar JSON-string
U kunt een woordenboek naar een JSON-tekenreeks converteren met de json.dumps()
methode.
Voorbeeld 3: converteer dict naar 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)
Hier is een tabel met Python-objecten en hun equivalente conversie naar JSON.
Python | JSON-equivalent |
---|---|
dict | voorwerp |
list , tuple | array |
str | draad |
int , float ,int | aantal |
True | waar |
False | false |
None | nul |
JSON naar een bestand schrijven
Om JSON naar een bestand in Python te schrijven, kunnen we json.dump()
method gebruiken.
Voorbeeld 4: JSON naar een bestand schrijven
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)
In het bovenstaande programma hebben we een bestand geopend met de naam person.txt
in de schrijfmodus met 'w'
. Als het bestand nog niet bestaat, wordt het gemaakt. Dan, json.dump()
transformeert person_dict
naar een JSON-tekenreeks, die in het wordt opgeslagen person.txt
bestand.
Wanneer u het programma start, wordt het person.txt
bestand gemaakt. Het bestand bevat de volgende tekst.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python mooie print JSON
Om JSON-gegevens te analyseren en te debuggen, moeten we deze mogelijk in een beter leesbaar formaat afdrukken. Dit kan worden gedaan door aanvullende parameters indent
en sort_keys
aan json.dumps()
en json.dump()
methode door te geven.
Voorbeeld 5: Python mooie print 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))
Wanneer u het programma uitvoert, is de uitvoer:
("languages": "English", "name": "Bob", "numbers": (2, 1.6, null))
In het bovenstaande programma hebben we 4
spaties gebruikt voor inspringen. En de sleutels zijn in oplopende volgorde gesorteerd.
Overigens is de standaardwaarde van inspringen None
. En de standaardwaarde van sort_keys is False
.
Aanbevolen metingen:
- Python JSON naar CSV en vice versa
- Python XML naar JSON en vice versa
- Python simplejson