Heim > Backend-Entwicklung > Python-Tutorial > Wie konvertiere ich JSON-Daten in Python-Objekte?

Wie konvertiere ich JSON-Daten in Python-Objekte?

Linda Hamilton
Freigeben: 2024-11-10 01:10:02
Original
250 Leute haben es durchsucht

How to Convert JSON Data to Python Objects?

JSON-Datenanalyse in Python

Frage:

So konvertieren Sie JSON-Daten in Python Objekte?

Hintergrund:

Sie erhalten ein JSON-Datenobjekt von der Facebook-API und möchten es in einer Datenbank speichern. Die Django-Ansicht, die Sie derzeit verwenden, wird durch den folgenden Code dargestellt:

response = request.POST
user = FbApiUser(user_id = response['id'])
user.name = response['name']
user.username = response['username']
user.save()
Nach dem Login kopieren

Das funktioniert gut, aber Sie möchten wissen, wie man mit komplexen JSON-Datenobjekten umgeht. Sie wünschten, es gäbe eine Möglichkeit, dieses JSON-Objekt zur einfacheren Verwendung in ein Python-Objekt zu konvertieren.

Lösung:

In Python 3 können Sie dies ganz einfach mit SimpleNamespace und object_hook tun:

import json
from types import SimpleNamespace

data = '{"name": "John Smith", "hometown": {"name": "New York", "id": 123}}'

# 将JSON解析为带有对应于dict键的属性的对象。
x = json.loads(data, object_hook=lambda d: SimpleNamespace(**d))
print(x.name, x.hometown.name, x.hometown.id)
Nach dem Login kopieren

In Python 2 können Sie „namedtuple“ und „object_hook“ verwenden (diese Methode ist jedoch für eine große Anzahl verschachtelter Objekte sehr langsam):

import json
from collections import namedtuple

data = '{"name": "John Smith", "hometown": {"name": "New York", "id": 123}}'

# 将JSON解析为带有对应于dict键的属性的对象。
x = json.loads(data, object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
print x.name, x.hometown.name, x.hometown.id
Nach dem Login kopieren

Um diese Funktion einfach wiederzuverwenden, können Sie den folgenden Code verwenden:

def _json_object_hook(d): return namedtuple('X', d.keys())(*d.values())
def json2obj(data): return json.loads(data, object_hook=_json_object_hook)

x = json2obj(data)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiere ich JSON-Daten in Python-Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage