Pandas DataFrame 作为 FastAPI 的 JSONResponse 的主体
Pandas DataFrame as body of FastAPI's JSONResponse
我有一个 Pandas DataFrame,其中包含多个列和一些我需要 return 来自 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,returned 正文是一个字符串,每个引号字符都已转义,而不是 JSON:
result = df.to_json(orient="records") #creates a json string
return JSONResponse(content = result)
上面的 return 类似于:
"[{\"Name:\":\"Joe\", \"Age\":\"34\"}, ...etc"
以下工作(因为 returned 正文是有效的 JSON)但我不喜欢响应是 returned 作为纯文本而不是 JSON。有没有更好、更合适的方法来做到这一点?
result = df.to_json(orient="records")
return PlainTextResponse(content = result)
而不是 json
,将其转换为 dict
,fastapi
应该能够自动处理:
result = df.to_dict('records')
return JSONResponse(content = result)
我有一个 Pandas DataFrame,其中包含多个列和一些我需要 return 来自 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,returned 正文是一个字符串,每个引号字符都已转义,而不是 JSON:
result = df.to_json(orient="records") #creates a json string
return JSONResponse(content = result)
上面的 return 类似于:
"[{\"Name:\":\"Joe\", \"Age\":\"34\"}, ...etc"
以下工作(因为 returned 正文是有效的 JSON)但我不喜欢响应是 returned 作为纯文本而不是 JSON。有没有更好、更合适的方法来做到这一点?
result = df.to_json(orient="records")
return PlainTextResponse(content = result)
而不是 json
,将其转换为 dict
,fastapi
应该能够自动处理:
result = df.to_dict('records')
return JSONResponse(content = result)