在可能的情况下,Pydantic 使用标准库类型定义字段,因此整个学习曲线很平滑。对于很多有用的应用程序,不存在标准库类型,因此 Pydantic 实现了许多常用类型。如果没有适合的现存类型,我们可以使用自定义属性和验证实现自己的 Pydantic 兼容类型。
1. 标准库类型
Pydantic 支持 Python 标准库中的许多常见类型,如果需要更严格的处理,请参考严格类型。如果需要约束允许的值(例如需要正整数),可以参考约束类型。
类型 | 描述 |
---|---|
None / type(None) / Literal[None] |
允许只有 None 值 |
bool |
|
int |
|
float |
|
str |
|
bytes |
|
list |
|
tuple |
|
dict |
|
frozenset |
|
deque |
|
datetime.date |
|
datetime.time |
|
datetime.datetime |
|
datetime.timedelta |
|
typing.Any |
|
typing.Annotated |
|
typing.TypeVar |
|
typing.Union |
|
typing.Optional |
|
typing.List |
|
typing.Tuple |
|
typing.NamedTuple 子类 |
|