如何从 Pandas DataFrame 返回数据以供 Django 的 JsonResponse 返回?

Sho*_*oth 0 python django pandas to-json jsonresponse

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

我正在尝试使用 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)
Run Code Online (Sandbox Code Playgroud)

以下最终返回:

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

事实上我希望它返回:

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

nev*_*ner 6

您需要将 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)
Run Code Online (Sandbox Code Playgroud)