如何在python或django中将json去序列化为对象
我不熟悉python和django。我必须使用一个web服务,web服务的响应是json,如下所示:如何在python或django中将json去序列化为对象,python,json,django,django-rest-framework,Python,Json,Django,Django Rest Framework,我不熟悉python和django。我必须使用一个web服务,web服务的响应是json,如下所示: [{'name': 'gfile1.txt', 'length': 448, 'createdDate': '1582229671352'}, {'name': 'gfile2.txt', 'length': 86, 'createdDate': '1582229671474'}, {'name': 'soc-LiveJournal1.txt', 'length': 1080598042, 'c
[{'name': 'gfile1.txt', 'length': 448, 'createdDate': '1582229671352'}, {'name': 'gfile2.txt', 'length': 86, 'createdDate': '1582229671474'}, {'name': 'soc-LiveJournal1.txt', 'length': 1080598042, 'createdDate': '1582229715227'}]
data = [
{'name': 'gfile1.txt', 'length': 448, 'createdDate': '1582229671352'},
{'name': 'gfile2.txt', 'length': 86, 'createdDate': '1582229671474'},
{'name': 'soc-LiveJournal1.txt', 'length': 1080598042, 'createdDate': '1582229715227'}
]
class DataParameter:
def __init__(self, name, size, _createdDate):
self.filename = name
self.filesize = size
self.createdDate = _createdDate
new_list = []
for i in data:
new_list.append(DataParameter(i['name'], i['length'], i['createdDate']))
print(new_list)
根据这个json结果,我还有一个类:下面是类定义:
class DataParameter:
def __init__(self, name, size, _createdDate):
self.filename = name
self.filesize = size
self.createdDate = _createdDate
我应该做的是:
我必须将上面的json转换为DataParameter类的列表。
你能帮我做这个吗?
谢谢如果我理解正确,您可以尝试以下方法:
[{'name': 'gfile1.txt', 'length': 448, 'createdDate': '1582229671352'}, {'name': 'gfile2.txt', 'length': 86, 'createdDate': '1582229671474'}, {'name': 'soc-LiveJournal1.txt', 'length': 1080598042, 'createdDate': '1582229715227'}]
data = [
{'name': 'gfile1.txt', 'length': 448, 'createdDate': '1582229671352'},
{'name': 'gfile2.txt', 'length': 86, 'createdDate': '1582229671474'},
{'name': 'soc-LiveJournal1.txt', 'length': 1080598042, 'createdDate': '1582229715227'}
]
class DataParameter:
def __init__(self, name, size, _createdDate):
self.filename = name
self.filesize = size
self.createdDate = _createdDate
new_list = []
for i in data:
new_list.append(DataParameter(i['name'], i['length'], i['createdDate']))
print(new_list)
这里有一个又快又脏的选择
class DataParameter:
def __init__(self, name, size, _createdDate):
self.filename = name
self.filesize = size
self.createdDate = _createdDate
@classmethod
def from_json(cls, json_str):
lst = []
for dct in json:
lst.append(cls(**json_dict))
return lst
#Usage
my_json = [{'name': 'gfile1.txt', 'length': 448, 'createdDate': '1582229671352'}, {'name': 'gfile2.txt', 'length': 86, 'createdDate': '1582229671474'}, {'name': 'soc-LiveJournal1.txt', 'length': 1080598042, 'createdDate': '1582229715227'}]
DataParameter.from_json(my_json)
您正在使用django rest框架吗?是的,json是request.get(url)的结果:为什么不使用DRF解析器