mcpField
P
pydantic

pydantic

github.com/jiatastic开发10184 次安装41 周前更新
代码仓库

关于 pydantic

介绍如何通过带 Python 类型注解的 Pydantic 模型验证和序列化数据。内容涵盖自定义验证、JSON Schema 生成和基于环境变量的设置,适用于处理结构化输入输出的开发者。

主要功能

  1. 01类型化模型验证
  2. 02字段与模型验证器
  3. 03Python 和 JSON 序列化
  4. 04生成 JSON Schema
  5. 05基于环境变量的设置

适用场景

  1. 01验证请求和响应负载
  2. 02规范化不可信输入
  3. 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]")

核心模式

  1. 类型化字段:严格定义模式。
  2. 字段验证器:自定义验证逻辑。
  3. 模型验证器:检查字段间的关联。
  4. 序列化:使用 model_dump() 和 model_dump_json()。
  5. 设置:通过 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