【问题标题】:How do I return data from Pandas DataFrame to be returned by Django's JsonResponse?如何从 Pandas DataFrame 返回数据以由 Django 的 JsonResponse 返回?
【发布时间】:2020-01-23 15:00:51
【问题描述】:

这个问题的答案可能很简单,但是经过几个小时的搜索,我真的找不到它。

我正在尝试使用 Django 从 pandas 数据框中返回一个 JsonResponse。我尝试过的许多事情之一如下:

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import pandas as pd

@csrf_exempt
def do_request(request):
    result = pd.DataFrame({'bla':[1,2,3],'bla2':['a','b','c']}).to_json(orient='records')
    return JsonResponse(result, safe = False)

以下内容最终返回:

"[{\"bla\":1,\"bla2\":\"a\"},{\"bla\":2,\"bla2\":\"b\"},{\"bla\":3,\"bla2\":\"c\"}]"

事实上我希望它返回:

'[{"bla":1,"bla2":"a"},{"bla":2,"bla2":"b"},{"bla":3,"bla2":"c"}]'

【问题讨论】:

  • 如果不通过 pandas 解析数据,你会得到什么结果?

标签: python django pandas jsonresponse to-json


【解决方案1】:

您需要将 python 对象(例如字典或列表)作为JsonResponse 数据传递。但是to_json 返回字符串。所以尝试解析它:

import json

@csrf_exempt
def do_request(request):
    result = pd.DataFrame({'bla':[1,2,3],'bla2':['a','b','c']}).to_json(orient='records')
    return JsonResponse(json.loads(result), safe = False)

【讨论】:

  • 这很有帮助。我在 JsonResponse() 中缺少“json.loads()”调用,结果一直以字符串形式出现。谢谢!
猜你喜欢
  • 2017-12-24
  • 2017-01-29
  • 2021-03-03
  • 2021-03-19
  • 2021-02-20
  • 2014-10-16
  • 2018-09-18
  • 2018-02-23
  • 2017-02-07
相关资源
最近更新 更多