【发布时间】:2021-08-14 10:55:39
【问题描述】:
为什么 pydantic 不验证作为 Foo 对象列表的参数,但在参数是原始类型列表时抛出 ValidationError?
我可以强制验证复杂类型吗?
验证不起作用:
from typing import List
from pydantic import BaseModel
class Foo(BaseModel):
kind: str = "foo"
class Bar(BaseModel):
kind: str = "bar"
class Spam(BaseModel):
foos: List[Foo]
spam = Spam(foos=[Bar()])
print(spam.dict())
>>> {'foos': [{'kind': 'bar'}]}
验证工作:
class Spam(BaseModel):
foos: List[int]
spam = Spam(foos=[Bar()])
print(spam.dict())
pydantic.error_wrappers.ValidationError: 1 validation error for Spam
foos -> 0
value is not a valid integer (type=type_error.integer)
【问题讨论】:
标签: python validation pydantic