Python JSON: lezen, schrijven, parseren JSON (met voorbeelden)

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 jsonmodule van Python gebruiken. U moet de module importeren voordat u deze kunt gebruiken.

 import json

Parse JSON in Python

De jsonmodule 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.jsondat 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.txtin de schrijfmodus met 'w'. Als het bestand nog niet bestaat, wordt het gemaakt. Dan, json.dump()transformeert person_dictnaar een JSON-tekenreeks, die in het wordt opgeslagen person.txtbestand.

Wanneer u het programma start, wordt het person.txtbestand 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 indenten sort_keysaan 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 4spaties 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

Interessante artikelen...