我有一个Pandas DataFrame,包含几个列和一些数据,我需要从FastAPI应用程序的响应体中返回这些数据。借用另一个类似但不同的问题的DataFrame示例:
test_list = [["Joe", 34, "Accounts", 10000], ["Jack", 35, "Chemistry", 20000], ["Jill", 37, "Art", 2000]]
df = pandas.DataFrame(data=test_list, columns=["Name", "Age", "Dept.", "Salary"])
现在,如果我尝试按如下方式使用dataframe.to_json,返回的主体是一个字符串,每个引号字符都转义,而不是JSON:
result = df.to_json(orient="records") #creates a json string
return JSONResponse(content = result)
上面的内容返回如下所示:
"[{\"Name:\":\"Joe\", \"Age\":\"34\"}, ...etc"
下面的工作(因为返回的主体是有效的JSON),但我不喜欢将响应作为纯文本而不是JSON返回。有没有更好更合适的方法来做这件事?
result = df.to_json(orient="records")
return PlainTextResponse(content = result)
发布于 2022-02-24 21:23:46
而不是json
,而是将其转换为dict
,fastapi
应该能够自动处理它:
result = df.to_dict('records')
return JSONResponse(content = result)
https://stackoverflow.com/questions/71258345
复制相似问题