English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JSON (Java Script Object Notation) ist ein leichtes, allgemein anerkanntes Datenübertragungsformat. Mit den JSON-Formatierungstechniken in Python können wir JSON-Strings in Python-Objekte umwandeln und umgekehrt Python-Objekte in JSON-Strings umwandeln.
Um diese Funktionen zu verwenden, müssen wir das Python-Modul json verwenden. Das json-Modul ist Bestandteil der Python-Standardbibliothek. Daher müssen wir es zunächst importieren.
import json
Im json-Modul gibt es einige Methoden, wie z.B. dump() und dumps(), die Python-Objekte in JSON-Strings umwandeln können. Der dump()-Method hat zwei Parameter, den ersten ist das Objekt und der zweite ist das Dateiobjekt. Diese Methode wandelt das Objekt in einem JSON-Format umDatenstromSerialisierung in Dateiobjekt. Ebenso akzeptiert der dumps()-Method nur einen Parameter. Dies ist das Objekt. Es wandelt das Objekt in JSON umZeichenkette.
import json from io import StringIO str_io_obj = StringIO() #Use JSON Dump to make StringIO json.dump(["India", "Australia", "Brazil"], str_io_obj) print('StringIO Object value: ') + str(str_io_obj.getvalue()) my_json = { "name": "Kalyan" "age": 25, "city": "Delhi" } print(json.dumps(my_json, indent=4))
Ausgabeergebnis
StringIO Object value: ["India", "Australia", "Brazil"] { "name": "Kalyan" "age": 25, "city": "Delhi" }
In diesem Fall werden wir JSON-Strings deserialisieren. Es gibt zwei verschiedene Methoden. Diese sind load() und load(). Beide Methoden nehmen ein JSON-Dokument als Parameter. load() wandelt Daten aus einem Dateiobjekt in ein Python-Objekt um, während load() Daten aus einer Zeilentyp-Datenkonvertierung umwandelt.
import json from io import StringIO str_io_obj = StringIO('["xyz", "abc", "xyz", "pqr"]') #load from StringIO print('Load: ' + str(json.load(str_io_obj)) print('String to Json: ' + str(json.loads('{"xyz" : 1, 'abc' : 2, 'xyz' : 3, 'pqr' : 4})
Ausgabeergebnis
Load: ['xyz', 'abc', 'xyz', 'pqr'] String to Json: {'xyz': 3, 'abc': 2, 'pqr': 4}
Die JSONEncoder-Klasse wird verwendet, um Python-Objekte in das JSON-Format zu konvertieren. In diesem Beispiel sehen wir, wie man mit JSONEncoder komplexe Objekte in JSON-Typ-Objekte konvertiert.
import json class Comp_Encoder(json.JSONEncoder): def default(self, comp_obj): if isinstance(comp_obj, complex): return [comp_obj.real, comp_obj.imag] return json.JSONEncoder.default(self, comp_obj) print(json.dumps(5+8j, cls=Comp_Encoder)
Ausgabeergebnis
[5.0, 8.0]
Die JSONDecoder-Klasse führt das Gegenteil durch.
import json my_str = '{"Asim" : 25, 'Priyesh' : 23, 'Asim' : "28"} #Decode JSON using the JSONDecoder print(json.JSONDecoder().decode(my_str)) print(json.JSONDecoder().raw_decode(my_str))
Ausgabeergebnis
{'Asim': '28', 'Priyesh': 23} ({'Asim': '28', 'Priyesh': 23}, 44)