从Django中的JsonResponse获取数据

时间:2019-09-18 09:46:39

标签: django

我想知道如何从Django的JsonResponse获取数据。我做了一个像这样的JsonResponse

def pfmdetail(rsid):
   snpid = parseSet(rsid)
   if not snpid:
      return HttpResponse(status=404)
   try:
      data = SnpsPfm.objects.values('start', 'strand', 'type', 'scoreref', 'scorealt', 
                    rsid=F('snpid__rsid'), pfm_name=F('pfmid__name')).filter(snpid=snpid[0])
   except SnpsPfm.DoesNotExist:
      return HttpResponse(status=404)
   serializer = SnpsPfmSerializer(data, many=True)
   return JsonResponse(serializer.data, safe=False)

然后我直接调用这样的方法

def pfmTable(qset,detail):
   source = pfmdetail(detail)
   print(source)
   df = pd.read_json(source)

但是它给了我一个错误。我知道这是错误的,因为通过打印它会返回响应状态200,因此我认为响应很好,但是如何访问响应内部的数据呢?我尝试import jsonjson.load,但没有成功。我什至尝试了QueryDict的方法,但仍然无法访问我感兴趣的内容

P.S。我知道data包含某些内容,因为如果我在浏览器中显示jsonresponse,我就能看到JSON

1 个答案:

答案 0 :(得分:2)

如您所见:https://docs.djangoproject.com/en/2.2/ref/request-response/#jsonresponse-objects

JsonResponse对象的content属性中包含json。

要访问它,请尝试以下操作:

df = pd.read_json(source.content)

或者看到它打印出来:

print(source.content)