English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JSON-Format in Python

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

Python-Objekt in JSON-String umwandeln

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.

Beispielcode

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

JSON-String in Python-Objekt umwandeln

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.

Beispielcode

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}

JSON-Encoder- und Decoder-Klassen in Python

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.

Beispielcode

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.

Beispielcode

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)