如何在python或django中将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

我不熟悉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, '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解析器