Lesen, schreiben und analysieren Sie JSON mit Python

Lesen, schreiben und analysieren Sie JSON mit Python

JSON ist ein leichtes Datenformat für den Datenaustausch, das von Menschen leicht gelesen und geschrieben und von Maschinen problemlos analysiert und generiert werden kann. Es handelt sich um ein vollständig sprachunabhängiges Textformat. Um mit JSON-Daten zu arbeiten, verfügt Python über ein integriertes Paket namens JSON.

Beispiel für einen JSON-String

s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}' 

Die Syntax von JSON wird als Teilmenge der Syntax von betrachtet JavaScript Folgendes ist mit eingeschlossen:

  • Name/Wert-Paare: Stellt Daten dar, auf den Namen folgt ein Doppelpunkt( : ), und die Name/Wert-Paare werden durch ein Komma getrennt( , ).
  • Geschweifte Klammern: Hält Gegenstände.
  • Eckige Klammern: Halten Sie Arrays mit durch Komma getrennten Werten ( , ).

Schlüssel/Name müssen Zeichenfolgen mit doppelten Anführungszeichen sein und Werte müssen einen der folgenden Datentypen haben:

Beispiel einer JSON-Datei:

 {  'employee': [  {  'id': '01',  'name': 'Amit',  'department': 'Sales'  },  {  'id': '04',  'name': 'sunil',  'department': 'HR'  }  ] } 

Python-Parse-JSON-String

Im folgenden Code konvertieren wir JSON in ein Python-Objekt. Um den JSON-String in Python zu analysieren, importieren wir zunächst das JSON-Modul. Wir haben einen JSON-String in einer Variablen gespeichert 'Mitarbeiter' und wir konvertieren diesen JSON-String mit in ein Python-Objekt json.loads() Methode des JSON-Moduls in Python. Danach drucken wir den Namen eines Mitarbeiters mit dem Schlüssel „Name“ aus. .

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'> ])>

Ausgabe

{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin 

Python liest die JSON-Datei

Nehmen wir an, wir haben eine JSON-Datei, die so aussieht.

pyhton-append-json1

Hier haben wir die Funktion open() verwendet, um die JSON-Datei zu lesen. Anschließend wird die Datei mit der Methode json.load() analysiert, die uns ein Wörterbuch mit dem Namen „data“ liefert.

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()>

Ausgabe:

python-read-json-output1

Konvertieren Sie Python Dict in JSON

Im folgenden Code konvertieren wir a Python-Wörterbuch zu einem JSON-Objekt mit json.dumps() Methode des JSON-Moduls in Python. Wir importieren zuerst das JSON-Modul und erstellen dann ein kleines Wörterbuch mit einigen Schlüssel-Wert-Paaren und übergeben es dann mit „indent=4“ an die Methode json.dumps(), um dieses Python-Wörterbuch in ein JSON-Objekt zu konvertieren. Da wir den Wert von indent auf 4 festgelegt haben, stehen vor jedem Datenwert vier Leerzeichen, wie in der Ausgabe zu sehen ist.

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)>

Ausgabe

{ 'id': '04', 'name': 'sunil', 'department': 'HR' } 

Die folgenden Arten von Python-Objekten können in JSON-Strings konvertiert werden:

Python-Objekte und ihre entsprechende Konvertierung in JSON:

Python

JSON-Äquivalent

dict

Objekt

Liste, Tupel

Array

str

Zeichenfolge

int, float

Nummer

WAHR

WAHR

FALSCH

FALSCH

Keiner

Null

JSON in eine Datei in Python schreiben

Wir können JSON mit der Funktion json.dump() des JSON-Moduls und der Dateiverwaltung in Python in eine Datei schreiben. Im folgenden Programm haben wir eine Datei mit dem Namen „sample.json“ im Schreibmodus geöffnet 'In' . Die Datei wird erstellt, wenn sie nicht vorhanden ist. Json.dump() wandelt das Python-Wörterbuch in einen JSON-String um und speichert ihn in der Datei 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)>

Ausgabe:

python-json-write-to-file

Python Pretty Print JSON

Wenn wir eine Zeichenfolge in JSON konvertieren, liegen die Daten in einem weniger lesbaren Format vor. Um die Lesbarkeit zu verbessern, können wir Pretty Printing verwenden, indem wir zusätzliche Argumente in der Funktion json.dumps() übergeben, z Einzug Und sort_keys wie im folgenden Code verwendet.

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> ))>

Ausgabe

{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }