【发布时间】:2022-01-01 20:32:49
【问题描述】:
我目前正在开发一个返回抓取数据的 API。数据存储为一个数组,但是当我将该数组作为响应返回到端点时,我收到以下错误:
pydantic.error_wrappers.ValidationError: 1 validation error for InnerObject
response
value is not a valid dict (type=type_error.dict)
这是我想要实现的简化版本:
class InnerObject(BaseModel):
foo: str
class OuterObject(BaseModel):
bar: List[InnerObject]
@app.get("/test_single", response_model=InnerObject)
def test():
return InnerObject(foo="Hello Mars")
@app.get("/test_multiple", response_model=OuterObject)
def test():
objects = [InnerObject]
objects.append(InnerObject(foo="Hello Earth"))
objects.append(InnerObject(foo="Hello Mars"))
return objects
我有一个对象数组,我想作为响应返回。我也可能不需要外部/内部模型,但我也尝试过并将 response_model 设置为response_model=List[InnerObject]。返回"/test_single" 端点中看到的单个InnerObject 工作正常,所以我认为这与尝试返回 [InnerObject]
感谢您提前回复
解决方案
感谢 kosciej16,问题是我在声明列表时添加了对象名称。所以我应该去objects = [InnerObject],而我应该去objects = []
【问题讨论】: