用途:Pydantic 基于 Python 类型提示提供运行时数据校验、序列化和设置管理,并能生成 JSON Schema。适合在外部输入边界处校验数据,例如 API 请求、配置和多环境设置。
主要能力:定义 BaseModel 并用类型注解声明字段;支持类型强制转换(如字符串 "1" 转为 int);可用 Field 约束长度、范围与正则(min_length、max_length、pattern、ge、le、gt);通过 field_validator 校验单字段、model_validator(mode='after'/'before') 校验整个模型;支持 Optional、枚举、特殊类型、TypeAdapter 与判别联合。
基本用法:安装 pip install pydantic;按需安装 pip install pydantic[email]、pip install pydantic orjson、pip install pydantic-settings。用 User.model_validate(dict) 或 model_validate_json(str) 校验,用 model_dump()/model_dump_json() 序列化。序列化可用 mode="json"、exclude_none=True、exclude_unset=True,深层嵌套模型应先用 timeit 或 profiler 测量再优化,优先用 Pydantic v2 并可用 orjson 提升性能。
集成与迁移:与 Django ORM 可用 ConfigDict(from_attributes=True) 接收 ORM 对象,TextChoices 可做枚举校验,注意未保存实例与懒加载字段。FastAPI 用其做请求/响应模型。v1 到 v2 需替换 @validator→@field_validator、@root_validator→@model_validator、class Config→model_config、.dict()→.model_dump()、.json()→.model_dump_json()、.parse_obj()→.model_validate()、.parse_raw()→.model_validate_json()、.schema()→.model_json_schema()、regex→pattern、copy→model_copy、orm_mode→from_attributes。
限制与最佳实践:不是所有场景都适用严格模型,内部已校验数据宜用 dataclass 或普通类,只在边界校验一次,性能敏感路径可跳过。可变默认值须用 Field(default_factory=list)。更详细的校验器、类型与默认值、配置与设置、Django、FastAPI 内容见对应参考文件;具体价格与平台信息暂未提供。