1. 为什么我们需要Pydantic?
在Python生态中处理数据验证和设置管理一直是个痛点。记得2018年我在开发一个金融数据API时,花了整整两周时间手写参数校验逻辑,各种if-else嵌套让人崩溃。直到遇到Pydantic,这个用类型注解驱动数据验证的库彻底改变了我的工作方式。
Pydantic的核心价值在于:它让你用Python类型注解声明数据结构,自动获得:
- 数据验证(字段类型、必填项、取值范围等)
- 数据解析(JSON/YAML/env vars → Python对象)
- 智能编辑器支持(VS Code/PyCharm自动补全)
- 序列化(Python对象 → dict/JSON)
最新v2版本更是带来了性能飞跃,基准测试显示其速度比v1快4-10倍。现在连FastAPI、LangChain等明星项目都将其作为核心依赖。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Pydantic基础模型实战
2.1 定义你的第一个模型
python复制from pydantic import BaseModel, Field
from typing import Literal, Optional
class User(BaseModel):
id: int
name: str = Field(..., min_length=2, max_length=10)
role: Literal['admin', 'user'] = 'user'
tags: list[str] = []
email: Optional[str] = None
这个模型定义了:
- 必填的整型
id - 长度限制的
name(2-10字符) - 枚举值
role(默认'user') - 字符串列表
tags(默认为空) - 可选的
email
注意:
Field(..., )中的...表示该字段没有默认值且必填
2.2 数据验证实战
python复制# 正确数据
user = User(id=1, name="张三")
print(user.model_dump())
# 输出: {'id': 1, 'name': '张三', 'role': 'user', 'tags': [], 'ema
