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,将其转换为 dictfastapi 应该能够自动处理:

result = df.to_dict('records')
return JSONResponse(content = result)