序列化将每个字符作为对象返回

时间:2016-01-03 19:08:47

标签: python django django-serializer

我有一个简单的视图,我需要返回JSON数据,但在使用django serializeJsonResponse时,它会将每个字符作为对象返回。这是片段:

def query(request):
    data = serializers.serialize('json', Post.objects.all())
    response = JsonResponse(data, safe=False)
    return response

问题在于,如果我想打印response.content[0],它会返回一些随机数,因为它是响应的第一个字符。

有没有什么方法可以像简单字典(JSON)那样访问响应?

1 个答案:

答案 0 :(得分:1)

一旦你有了JSON,它基本上是string - 所以你不能像字典/列表或任何Python类型那样访问它。

如果您需要像字典或列表一样访问它,您应该对非序列化数据进行操作:

def query(request):
    posts = Post.objects.all()

    print(posts[0]) # You can now use it as a list of objects

    data = serializers.serialize('json', posts)
    response = JsonResponse(data, safe=False)
    return response