FastApi - 从PHP数组接收载荷
我在一个FastAPI应用程序中遇到了下面的错误。这个错误和从PHP数组传来的数据有关。我可以把输入数据改成其他类型,但我面临的挑战是,这个输入看起来像一个普通的字典,所以我不知道怎么把这个数组当作字典来读取。
async def post(input_data:dict):
{#908
+"detail": array:1 [
0 => {#890
+"type": "dict_type"
+"loc": array:1 [
0 => "body"
]
+"msg": "Input should be a valid dictionary"
+"input": "{"test":"No","fields":"X"}"
+"url": "https://errors.pydantic.dev/2.2/v/dict_type"
}
]
}
我希望能读取这个数组里面包含的字典。
1 个回答
0
输入的数据是一个字符串,内容是 "{"test":"No","fields":"X"}"
你可以使用 Pydantic
来把它转换成一个字典。
import json
from pydantic import BaseModel, field_validator
class InputData(BaseModel):
input_data: dict
@field_validator("input_data", mode='before')
def sanitize_dict(cls, v):
return json.loads(v)
然后在你的API路由中
async def post(input_data:InputData):
```Your endpoint implementation here...```