我已经阅读了一些关于序列化字典的答案和帖子。但我仍然无法让它发挥作用。 这是问题所在。 我在django应用程序中做了一些数据处理,它返回这个字典(它有关于测验的信息):
{101: {'subject': 'General-Intelligence', 'topics': ['Coding Decoding', 'Dice & Boxes', 'Statement & Conclusion', 'Venn Diagram', 'Mirror and Water Image', 'Paper Cutting and Folding', 'Clock/Time', 'Matrix', 'Direction', 'Blood Relation', 'Series Test', 'Ranking', 'Mathematical Operations', 'Alphabet Test', 'Odd one out', 'Analogy'], 'num_questions': 25, 'creator': 'Rajesh K Swami'}}
我想序列化这本词典。 所以我所做的是为这本词典创建了一个类。即
class PsudoTests:
def __init__(self,body):
self.body = body
也是一个序列化器:
class PsudoTestSerializer(serializers.Serializer):
body = serializers.DictField()
现在在api视图中:
class TestListView(generics.ListAPIView):
def get_serializer_class(self):
serializer = PsudoTestSerializer
def get_queryset(self):
me = Studs(self.request.user)
tests = me.toTake_Tests(1) # this method brings in the above dictionary that i want to serialize
p_test = PsudoTests(tests) #this creates an instance of class created above
return p_test
现在当我转到网址时出现一个关键错误:
"尝试在序列化程序
body
上获取字段PsudoTestSerializer
的值时出现KeyError。\ n序列化程序字段可能名称不正确,并且与{{1}上的任何属性或键都不匹配}。instance。\ n原始异常文本是:' body'。"
当我转到api url时,如何以json格式成功获取该字典。 感谢。
答案 0 :(得分:2)
这里不需要序列化器。只需将其直接转储到JSON。