Pydantic :基于 Python 类型注解(type hints)的数据验证和数据解析库
Pydantic 是一个基于 Python 类型注解(type hints)的数据验证和数据解析库。它最主要的功能是:保证数据的结构正确,并且自动地进行数据类型转换。
它的特点可以总结为:
- 类型安全:根据你定义的模型(Model),Pydantic 自动验证传入的数据类型是否正确。
- 数据校验:支持复杂的数据校验逻辑,比如字符串长度、数字范围等。
- 自动转换:如果数据类型可以被自动转换(比如字符串
"123"
转成整数123
),Pydantic 会智能地完成。 - 易用性强:非常简洁,易于与 FastAPI 等现代 Python 框架集成。
- 性能优秀:底层用 Cython 优化,速度很快。
一个简单的例子
from pydantic import BaseModelclass User(BaseModel):id: intname: strsignup_ts: str | None = Nonefriends: list[int] = []# 创建数据对象
user = User(id='123', name='Tom', friends=[1, 2, '3'])print(user)
print(user.id) # 自动转换 id 为整数
print(user.friends) # 自动将字符串 '3' 转换为整数 3
输出:
id=123 name='Tom' signup_ts=None friends=[1, 2, 3]
123
[1, 2, 3]
你可以看到,
id
字段虽然传的是字符串"123"
,Pydantic 自动帮你转成了整数123
,而且friends
列表里的"3"
也被转成了数字3
。
常见应用场景
- API开发(尤其是与 FastAPI 配合时)
- 配置文件管理(比如读取 JSON/YAML 配置时)
- 数据导入校验(如用户上传 CSV/Excel 数据时)
- ORM层数据验证(数据库模型验证)