关于 pydantic
介绍如何通过带 Python 类型注解的 Pydantic 模型验证和序列化数据。内容涵盖自定义验证、JSON Schema 生成和基于环境变量的设置,适用于处理结构化输入输出的开发者。
主要功能
- 01类型化模型验证
- 02字段与模型验证器
- 03Python 和 JSON 序列化
- 04生成 JSON Schema
- 05基于环境变量的设置
适用场景
- 01验证请求和响应负载
- 02规范化不可信输入
- 03为文档生成 Schema
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jiatastic/ open-python-skills --skill pydantic安装后在 Claude Code 中输入/pydantic确认已加载。
附带文件references/pitfalls.mdreferences/quickstart.md
详细介绍
pydantic
使用 Pydantic 模型进行类型驱动的验证和序列化。
概述
Pydantic 使用 Python 类型提示验证数据,并通过 model_dump() 和 JSON Schema 输出提供丰富的序列化功能。
适用场景
- 验证请求和响应负载
- 规范化不可信输入
- 为文档生成 JSON Schema
快速入门
uv pip install pydantic
from pydantic import BaseModel
class User(BaseModel):
id: int
email: str
user = User(id=1, email="[email protected]")
核心模式
- 类型化字段:严格定义模式。
- 字段验证器:自定义验证逻辑。
- 模型验证器:检查字段间的关联。
- 序列化:使用
model_dump()和model_dump_json()。 - 设置:通过
BaseSettings使用环境变量驱动的配置。
示例:field_validator
from pydantic import BaseModel, field_validator
class Model(BaseModel):
name: str
@field_validator("name")
@classmethod
def ensure_not_empty(cls, v: str):
if not v:
raise ValueError("name required")
return v
示例:model_validate + model_dump
from pydantic import BaseModel
class Model(BaseModel):
foo: int
model = Model.model_validate({"foo": 1})
print(model.model_dump())
故障排除
- 意外的类型强制转换:必要时使用严格类型
- 验证器运行缓慢:尽量保持逻辑精简
- 可变默认值:使用
default_factory
参考资料
评论
支持 Markdown