如何将 JSON 数据转换为 Python 对象? [英] How to convert JSON data into a Python object?
本文介绍了如何将 JSON 数据转换为 Python 对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将 JSON 数据转换为 Python 对象.
I want to convert JSON data into a Python object.
我从 Facebook API 接收 JSON 数据对象,我想将其存储在我的数据库中.
I receive JSON data objects from the Facebook API, which I want to store in my database.
我在 Django (Python) 中的当前视图(request.POST
包含 JSON):
My current View in Django (Python) (request.POST
contains the JSON):
response = request.POST
user = FbApiUser(user_id = response['id'])
user.name = response['name']
user.username = response['username']
user.save()
- 这很好用,但我如何处理复杂的 JSON 数据对象?
- 如果我能以某种方式将此 JSON 对象转换为 Python 对象以便于使用,岂不是更好?
推荐答案
你可以试试这个:
class User(object):
def __init__(self, name, username):
self.name = name
self.username = username
import json
j = json.loads(your_json)
u = User(**j)
只需创建一个新对象,并将参数作为映射传递即可.
Just create a new object, and pass the parameters as a map.
注意:它不适用于嵌套类.
Note: It does not work for nested classes.
您也可以使用带有对象的 JSON:
You can have a JSON with objects too:
import json
class Address(object):
def __init__(self, street, number):
self.street = street
self.number = number
def __str__(self):
return "{0} {1}".format(self.street, self.number)
class User(object):
def __init__(self, name, address):
self.name = name
self.address = Address(**address)
def __str__(self):
return "{0} ,{1}".format(self.name, self.address)
if __name__ == '__main__':
js = '''{"name":"Cristian", "address":{"street":"Sesame","number":122}}'''
j = json.loads(js)
print(j)
u = User(**j)
print(u)
这篇关于如何将 JSON 数据转换为 Python 对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文