JSON is een lichtgewicht gegevensformaat voor gegevensuitwisseling dat gemakkelijk door mensen kan worden gelezen en geschreven, en gemakkelijk door machines kan worden geparseerd en gegenereerd. Het is een volledig taalonafhankelijk tekstformaat. Om met JSON-gegevens te werken, heeft Python een ingebouwd pakket genaamd JSON.
Voorbeeld van JSON-tekenreeks
s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}'> De syntaxis van JSON wordt beschouwd als een subset van de syntaxis van JavaScript inclusief het volgende:
- Naam/waarde-paren: Staat voor Data, de naam wordt gevolgd door een dubbele punt( : ), en de Naam/Waarde-paren worden gescheiden door een komma( , ).
- Accolades: Houdt voorwerpen vast.
- Vierkante haakjes: Houd arrays vast met waarden gescheiden door een komma ( , ).
Sleutels/naam moeten tekenreeksen zijn met dubbele aanhalingstekens en waarden moeten een van de volgende gegevenstypen zijn:
Voorbeeld van een JSON-bestand:
{ 'employee': [ { 'id': '01', 'name': 'Amit', 'department': 'Sales' }, { 'id': '04', 'name': 'sunil', 'department': 'HR' } ] }> Python-parseer JSON-tekenreeks
In de onderstaande code gaan we JSON converteren naar een Python-object. Om de JSON-string Python te parseren, importeren we eerst de JSON-module. We hebben een JSON-tekenreeks opgeslagen in een variabele 'medewerker' en we converteren deze JSON-string naar een Python-object met behulp van json.loads() methode van JSON-module in Python. Daarna printen wij de naam van een medewerker met behulp van de sleutel ‘naam’ .
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'>])> |
>
np.clip
>Uitvoer
{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin> Python leest JSON-bestand
Laten we aannemen dat we een JSON-bestand hebben dat er zo uitziet.

Hier hebben we de functie open() gebruikt om het JSON-bestand te lezen. Vervolgens wordt het bestand geparseerd met behulp van de json.load()-methode, die ons een woordenboek geeft met de naam 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()> |
>
>
Uitgang:

Converteer Python Dict naar JSON
In de onderstaande code converteren we a Python-woordenboek naar een JSON-object met behulp van json.dumps() methode van JSON-module in Python. We importeren eerst de JSON-module en maken vervolgens een klein woordenboek met enkele sleutel-waardeparen en geven dit vervolgens door aan de methode json.dumps() met ‘indent=4’ om dit Python-woordenboek om te zetten in een JSON-object. Omdat we de waarde van inspringen aan 4 hebben gegeven, staan er vier witruimten vóór elke gegevens, zoals te zien in de uitvoer.
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)> |
>
>Uitvoer
{ 'id': '04', 'name': 'sunil', 'department': 'HR' }> De volgende typen Python-objecten kunnen worden geconverteerd naar JSON-tekenreeksen:
Python-objecten en hun equivalente conversie naar JSON:
| Python | JSON-equivalent |
|---|---|
| dictaat | voorwerp |
| lijst, tupel | reeks |
| str | snaar hoe je een string naar een geheel getal converteert in Java |
| int, zweven | nummer |
| WAAR | WAAR |
| Vals | vals |
| Geen | nul |
JSON schrijven naar een bestand in Python
We kunnen JSON naar een bestand schrijven met behulp van de json.dump()-functie van de JSON-module en bestandsverwerking in Python. In het onderstaande programma hebben we een bestand met de naam sample.json geopend in de schrijfmodus met behulp van 'In' . Het bestand wordt gemaakt als het niet bestaat. Json.dump() transformeert het Python-woordenboek naar een JSON-tekenreeks en wordt opgeslagen in het bestand 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)> |
>
>
Uitgang:

Python Pretty Print JSON
Wanneer we een string naar JSON converteren, hebben de gegevens een minder leesbaar formaat. Om het leesbaarder te maken, kunnen we mooie afdrukken gebruiken door extra argumenten door te geven in de functie json.dumps(), zoals inspringen En sorteersleutels zoals gebruikt in de onderstaande code.
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>))> |
>
>Uitvoer
{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }>