Как вернуть данные из Pandas DataFrame, которые будут возвращены JsonResponse Django? - PullRequest
0 голосов
/ 23 января 2020

Ответ на этот вопрос, вероятно, очень прост, но после нескольких часов поиска я действительно не смог его найти.

Я пытаюсь вернуть JsonResponse, используя Django из pandas кадра данных. Одна из многих вещей, которые я пробовал, заключается в следующем:

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"}]'

1 Ответ

2 голосов
/ 23 января 2020

Вам необходимо передать 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)
...