簡體   English   中英

如何使用 FastAPI 將 dataframe 正確返回為 JSON?

[英]How to properly return dataframe as JSON using FastAPI?

我使用返回 JSON 的 FastAPI 創建了一個 API。首先,我曾經使用 Pandas.to_json() 方法將 Dataframe 轉換為 JSON ,這使我能夠選擇正確的“東方”參數。 這保存了一個 .json 文件,然后打開它使 fastAPI 返回它,如下所示:

DATA2.to_json("json_records.json",orient="records")

with open('json_records.json', 'r') as f:
data = json.load(f)

return(data)

這工作得很好,但我被告知我的腳本不應該保存任何文件,因為這個腳本將在我公司的服務器上運行,所以我不得不直接將 dataframe 轉換為 JSON 並返回它。 我試過這樣做:

data = DATA2.to_json(orient="records")

return(data)

但是現在 API 的 output 是一個充滿 "\"的 JSON。 我想解析有問題,但我真的找不到正確的方法。 output 現在看起來像這樣:

"[{\"ExtraccionHora\":\"12:53:00\",\"MiembroCompensadorCodigo\":117,\"MiembroCompensadorDescripcion\":\"OMEGA CAPITAL S.A.\",\"CuentaCompensacionCodigo\":\"1143517\",\"CuentaNeteoCodigo\":\"160234117\",\"CuentaNeteoDescripcion\":\"UNION FERRO SRA A\",\"ActivoDescripcion\":\"X17F3\",\"ActivoID\":8,\"FinalidadID\":2,\"FinalidadDescripcion\":\"Margenes\",\"Cantidad\":11441952,\"Monto\":-16924935.3999999985,\"Saldo\":-11379200.0,\"IngresosVerificados\":11538288.0,\"IngresosNoVerificado\":0.0,\"MargenDelDia\":0.0,\"SaldoConsolidadoFinal\":-16765847.3999999985,\"CuentaCompensacionCodigoPropia\":\"80500\",\"SaldoCuentaPropia\":-7411284.3200000003,\"Resultado\":\"0\",\"MiembroCompensadorID\":859,\"CuentaCompensacionID\":15161,\"CuentaNeteoID\":7315285}.....

使用“記錄”方向將我的 dataframe 轉換為 JSON,然后將其作為 FastAPI output 返回的正確方法是什么? 謝謝!

更新:我使用相同的參數將 to_json() 方法更改為 to_dict() 並且似乎有效......不知道它是否正確。

    data = DATA2.to_dict(orient="records")

return(data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM