在我的Django项目中,我正在尝试返回JsonResponse
,但返回的数据正在“某处”转义。当我通过Jupyter Notebook运行代码时,我没有问题。我的DataFrame结构是:
我的Django响应读入我的DataFrame pickle并按如下方式处理:
def API_FTEs_month(request, storeCode):
df1=pd.read_pickle(storeCode+'.pickle')
result=(df1.groupby(['Date','Job Role'], as_index=False)
.apply(lambda i: i[['Department', 'Team', 'Days']].to_dict('r'))
.reset_index()
.rename(columns={0: 'Assignments'})
.to_json(orient='records'))
return JsonResponse(result, safe=False)
我不知道为什么,但响应会像这样被转义:
"[{\"Date\":\"2017-12-31\",\"Job Role\":\"Junior\",\"Assignments\":[{\"Department\":\"Electronics\",\"Team\":\"A\",\"Days\":12.8311126233},{\"Department\":\"Electronics\",\"Team\":\"B\",\"Days\":9.7797036952},{\"Department\":\"Electronics\",\"Team\":\"C\",\"Days\":12.4532628859},{\"Department\":\"Household\",\"Team\":\"A\",\"Days\":13.2005991473},{\"Department\":\"Household\",\"Team\":\"B\",\"Days\":11.2217690247},{\"Department\":\"Household\",\"Team\":\"C\",\"Days\":9.9799650502}]},{\"Date\":\"2017-12-31\",\"Job Role\":\"Senior\",\"Assignments\":[{\"Department\":\"Electronics\",\"Team\":\"A\",\"Days\":12.3088204188},{\"Department\":\"Electronics\",\"Team\":\"B\",\"Days\":11.6027520428},{\"Department\":\"Electronics\",\"Team\":\"C\",\"Days\":8.4242249342},{\"Department\":\"Household\",\"Team\":\"A\",\"Days\":10.2680664459},{\"Department\":\"Household\",\"Team\":\"B\",\"Days\":10.7355819544},{\"Department\":\"Household\",\"Team\":\"C\",\"Days\":14.4751405746}]},{\"Date\":\"2018-01-31\",\"Job Role\":\"Junior\",\"Assignments\":[{\"Department\":\"Electronics\",\"Team\":\"A\",\"Days\":9.8390990646},{\"Department\":\"Electronics\",\"Team\":\"B\",\"Days\":7.8840336082},{\"Department\":\"Electronics\",\"Team\":\"C\",\"Days\":7.4098884623},{\"Department\":\"Household\",\"Team\":\"A\",\"Days\":6.5804561812},{\"Department\":\"Household\",\"Team\":\"B\",\"Days\":7.9109739164},{\"Department\":\"Household\",\"Team\":\"C\",\"Days\":7.6766255979}]},{\"Date\":\"2018-01-31\",\"Job Role\":\"Senior\",\"Assignments\":[{\"Department\":\"Electronics\",\"Team\":\"A\",\"Days\":5.9779944185},{\"Department\":\"Electronics\",\"Team\":\"B\",\"Days\":7.8300778676},{\"Department\":\"Electronics\",\"Team\":\"C\",\"Days\":7.9050436379},{\"Department\":\"Household\",\"Team\":\"A\",\"Days\":6.9225874658},{\"Department\":\"Household\",\"Team\":\"B\",\"Days\":7.6001780124},{\"Department\":\"Household\",\"Team\":\"C\",\"Days\":6.5897367619}]}]"
在Jupyter Notebook中重新创建尝试我似乎得到了有效的JSON:
我假设我的to_json()
或JsonResponse
中存在问题,但我尝试将其他JSON尝试插入我的JsonResponse
,例如以下内容,它为我提供了有效的JSON(但没有逃避所需的结构:
def nested_dict():
return collections.defaultdict(nested_dict)
result=nested_dict()
for row in df4.itertuples():
result[row.Index[0]][row.Index[1]][row[1]][row[2]]['sales'] = row.Days
json.dumps(result)