将序列化器数据转换为 python dict 的正确方法

Jek*_*son 1 python django-rest-framework

我正在寻找一种从序列化数据中获取字典的方法。我现在就用这个​​方法。

m = Mymodel.objects.all()
serializer = RfiParticipationCsvDownloadSerializer(m)
print(type(serializer)) # <class'apps.vendors.serializers.RfiParticipationCsvDownloadSerializer'>
qs = json.dumps(serializer.data)
print(type(qs)) # <class 'str'>
module_dict = json.loads(qs)
print(type(module_dict)) #<class 'dict'>
Run Code Online (Sandbox Code Playgroud)

但我不认为这是最好的或正确的。告诉我最好的解决方案。

小智 5

Serializer.data 已经具有 ReturnDict 类型,因此您可以像使用 dict 一样使用它,或者如果需要更改数据,您可以将 serializer.data 复制到新的 dict,因为 serializer.data 是类的属性并且它是不可变的。