无法将字典对象转换为JSON对象

0 python django json dictionary django-views

我想将我的字典对象转换为JSON,因为我需要在ReactJS文件中发送它.我的代码如下:

def get(self, request, pk, format = None):
    queryset = SocialAccount.objects.filter(provider='twitter').get(id=pk)
    user_id= queryset.uid
    name = queryset.extra_data['name']
    username = queryset.extra_data['screen_name']
    data = {'user_id':user_id,'name':name,'username':username}
    data = json.dumps(data)
    print(type(json.loads(data)))
    return Response(json.loads(data))
Run Code Online (Sandbox Code Playgroud)

在这个视图中,我在"print(type(json.loads(data)))"行而不是JSON对象中获得了"class'dict'".如果我出错了,请指导我.我需要做什么?谢谢.

Mar*_*ers 5

成功生成了JSON.你做错了是你再次解码 JSON,回到Python对象,你只测试了解码的结果.这是一个新的字典对象; 您生成和存储的JSON data是有效的JSON,并且您已经证明它可以再次成功解码.

换句话说,请勿再次解码.你已经有了JSON,只需返回:

data = {'user_id':user_id,'name':name,'username':username}
data = json.dumps(data)
return Response(data)
Run Code Online (Sandbox Code Playgroud)

您可以通过返回JsonResponse对象来简化此操作:

# at the top
from django.http import JsonResponse

# in your view
data = {'user_id':user_id,'name':name,'username':username}
return JsonResponse(data)
Run Code Online (Sandbox Code Playgroud)

这也需要为您设置正确的内容类型.