Specifically, I want the example below to work:
from fastapi import FastAPI
from fastapi import UploadFile
app = FastAPI()
@app.post("/check")
def foo(grid: dict, file: UploadFile):
return {"len_grid": len(grid), "filename": file.filename}
Currently, while trying to create a POST request passing any valid dict to grid parameter and upload some file, FAST API raises the error:
"detail": [
{
"loc": [
"body",
"grid"
],
"msg": "value is not a valid dict",
"type": "type_error.dict"
}
]
}
At the same time, if I use only one of these parameters inside the function, it works well.
I am calling (testing) my API this way:
import requests
url = 'http://127.0.0.1:8000/check'
file = {'file': open('ny_pollution_events.csv', 'rb')}
payload = {"grid": {"name": "Alex", "age": 15}}
resp = requests.post(url=url, data=payload, files=file)
print(resp.json())
as well as via in-built Swagger UI.
