[英]FastAPI - How to read an json file while using UploadFile
from typing import List, Optional
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import HTMLResponse
from pydantic import BaseModel
app = FastAPI(debug=True)
@app.post("/uploadfiles/")
def create_upload_files(upload_file: UploadFile = File(...)):
json_data = ?? upload_file ??
result = model().calculate(json_data)
return { "estimation": result}
@app.get("/")
async def main():
content = """
<body>
<form action="/uploadfiles/" enctype="multipart/form-data" method="post">
<input name="upload_file" type="file" multiple>
<input type="submit">
</form>
</body>
"""
return HTMLResponse(content=content)
我有上面的 FastAPI 應用程序。 我需要上傳一個json文件。 因此,upload_file 是一個 json 文件。 此外,model() 實例使用了一種將 json 數據作為輸入的方法。 我在如何將上傳文件從 Fast_API 解碼為字典格式方面苦苦掙扎。
我試過 upload_file.read() 但這返回一個字節數組
能否請你幫忙?
您可以使用標准json
模塊通過使用json.load()
--(Doc)從上傳的 JSON 文件解析內容作為
from fastapi import FastAPI, File, UploadFile
import json
app = FastAPI(debug=True)
@app.post("/uploadfiles/")
def create_upload_files(upload_file: UploadFile = File(...)):
json_data = json.load(upload_file.file)
return {"data_in_file": json_data}
因此,您的json_data
變量中將包含 JSON 內容。
或者,您可以使用json.loads()
--(Doc)函數作為
json_data = json.loads(upload_file.file.read())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.