Python3 JSON-Daten parsen

JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat.

Wenn Sie JSON noch nicht verstehen, können Sie zuerst unserJSON-Tutorial lesen。

Python3 kann das json-Modul verwenden, um JSON-Daten zu kodieren und zu dekodieren. Es enthält zwei Funktionen:

  • json.dumps(): Daten kodieren.
  • json.loads(): Daten dekodieren.

Während des json-Kodierungs-/Dekodierungsprozesses werden Python-native Typen und json-Typen ineinander umgewandelt. Die genauen Konvertierungsentsprechungen sind wie folgt:

Entsprechungstabelle für die Konvertierung von Python-Kodierung in JSON-Typen:

Python JSON
dict Objekt
list, tuple array
str string
int, float, von int und float abgeleitete Enums number
True wahr
False false
Keine null

Zuordnungstabelle für die Konvertierung von JSON-Dekodierung zu Python-Typen:

JSON Python
Objekt dict
array Liste
string str
Zahl (int) int
Zahl (real) float
wahr True
false False
null Keine

Beispiele für json.dumps und json.loads

Das folgende Beispiel zeigt, wie Python-Datenstrukturen in JSON konvertiert werden:

Beispiel (Python 3.0+)

#!/usr/bin/python3 import json # Python-Dictionary-Typ in JSON-Objekt konvertiert data = { 'no' : 1, 'name' : 'Beispiel', 'url' : 'https://www.example.com' } json_str = json.dumps(data) print ("Python ursprüngliche Daten:", repr(data)) print ("JSON-Objekt:", json_str)

Die Ausführung des obigen Codes liefert das folgende Ergebnis:

Python 原始数据: {'no': 1, 'name': 'Example', 'url': 'https://www.example.com'}
JSON 对象: {"no": 1, "name": "Example", "url": "https://www.example.com"}

Aus dem Ausgabeergebnis lässt sich erkennen, dass einfache Typen nach der Codierung ihrer ursprünglichen repr()-Ausgabe sehr ähnlich sind.

Ausgehend vom obigen Beispiel können wir eine JSON-codierte Zeichenkette zurück in eine Python-Datenstruktur umwandeln:

Beispiel (Python 3.0+)

#!/usr/bin/python3 import json # Python-Dictionary-Typ in JSON-Objekt konvertiert data1 = { 'no' : 1, 'name' : 'Beispiel', 'url' : 'http://www.example.com' } json_str = json.dumps(data1) print ("Python-Originaldaten:", repr(data1)) print ("JSON-Objekt:", json_str) # JSON-Objekt in Python-Dictionary umwandeln data2 = json.loads(json_str) print ("data2['name']: ", data2['name']) print ("data2['url']: ", data2['url'])

Die Ausführung des obigen Codes liefert das folgende Ergebnis:

Python 原始数据: {'name': 'Example', 'no': 1, 'url': 'http://www.example.com'}
JSON 对象: {"name": "Example", "no": 1, "url": "http://www.example.com"}
data2['name']:  Example
data2['url']:  http://www.example.com

Wenn Sie es mit einer Datei statt mit einer Zeichenkette zu tun haben, können Siejson.dump()undjson.load()verwenden, um JSON-Daten zu kodieren und zu dekodieren. Zum Beispiel:

Beispiel (Python 3.0+)

# JSON-Daten schreiben with open('data.json', 'w') as f: json.dump(data, f) # Daten lesen with open('data.json', 'r') as f: data = json.load(f)

Weitere Informationen finden Sie unter:https://docs.python.org/3/library/json.html Andere Erweiterungen