我需要创建一个端点,它可以接收以下JSON并识别其中包含的对象:
{
"data": [
{
"start": "A", "end": "B", "distance": 6
},
{
"start": "A", "end": "E", "distance": 4
}
]
}
字符串
我创建了一个模型来处理单个对象:
class GraphBase(BaseModel):
start: str
end: str
distance: int
型
有了它,我可以把它存到数据库里。但现在我需要接收对象列表并将其全部保存。我试着这样做:
class GraphList(BaseModel):
data: Dict[str, List[GraphBase]]
@app.post("/dummypath")
async def get_body(data: schemas.GraphList):
return data
型
但是我在FastApi上一直得到这个错误:Error getting request body: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
和响应上的以下消息:
{
"detail": "There was an error parsing the body"
}
型
我是python的新手,FastApi甚至更新,我如何将JSON转换为GraphBase
列表并将其保存在我的数据库中?
2条答案
按热度按时间l5tcr1uw1#
这是一个工作示例。
字符串
我可以在自动生成的文档上尝试这个API。
的数据
或者,在控制台上(您可能需要根据设置调整URL):
型
错误看起来像是数据问题。我发现你在几个地方都有多余的空间。请尝试以下操作:
型
额外空间的位置(我删除了)如下:
的
oiopk7p52#
通常,FastAPI允许简单地接收对象列表,不需要将该列表 Package 在额外的对象中。
字符串
更多信息请参见FastAPI文档。