logo

JSON lezen, schrijven en parseren met Python

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:

  • Snaar
  • Nummer
  • Object (JSON-object)
  • reeks
  • Booleaans
  • Nul

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.

pyhton-toevoegen-json1

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:

python-read-json-output1

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-json-schrijven-naar-bestand

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' }>