TypeScript 与 ReScript 通用 Schema 库,一次声明即可完成数据校验、解析与编码,支持 JSON、表单和 Protobuf。
pydantic/pydantic
基于 Python 类型提示的数据校验库,可解析并校验外部数据,核心由 Rust 实现。
- Star
- 29,324
- Fork
- 3,147
- 未关闭 Issue
- 593
- 最近提交
- 19小时前
这是什么?
Pydantic 是一个用于数据校验和解析的 Python 库。开发者用带类型提示的普通 Python 类描述数据结构,Pydantic 会按这些类型校验传入的数据,并把例如数字字符串之类的值转换为声明的类型。它适用于 API 请求体、配置文件以及其他不可信或结构松散的输入。
模型通过继承 BaseModel 定义,校验失败时会指出具体是哪个字段出错。由于定义就是标准的 Python 类型注解,它也能生成 JSON Schema,并与编辑器和 linter 良好配合。当前的主版本 V2 是重写版本,核心用 Rust 实现。项目还在 pydantic.v1 下内置了 V1.10 兼容模块,便于逐步迁移已有代码。
核心功能
- 01基于标准 Python 类型提示进行数据校验与类型转换。
- 02通过继承 BaseModel 定义模型,并给出清晰的校验错误信息。
- 03可从模型生成 JSON Schema。
- 04定义即普通 Python 注解,与编辑器和 linter 配合良好。
- 05内置 pydantic.v1 模块,便于从 V1.10 逐步迁移。
适用场景
- 在 Python Web API 中校验请求体和响应体。
- 从文件或环境变量加载并检查应用配置。
- 将不可信的 JSON 输入解析为带类型的对象。
- 基于 Python 数据模型生成 JSON Schema,用于文档或工具链。
快速上手
- 1
使用 pip 安装 Pydantic
pip install -U pydantic - 2
或使用 conda 从 conda-forge 安装
conda install pydantic -c conda-forge - 3
定义模型并校验数据(参见 README 中的简单示例)
标签
常见问题
- pydantic 是什么?
- 基于 Python 类型提示的数据校验库,可解析并校验外部数据,核心由 Rust 实现。 Pydantic 是一个用于数据校验和解析的 Python 库。开发者用带类型提示的普通 Python 类描述数据结构,Pydantic 会按这些类型校验传入的数据,并把例如数字字符串之类的值转换为声明的类型。它适用于 API 请求体、配置文件以及其他不可信或结构松散的输入。
- pydantic 可以免费使用吗?用的什么许可证?
- pydantic 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- pydantic 还在维护吗?
- 活跃维护中。pydantic 最近一次提交是在 2026年11月6日。
- pydantic 适合用来做什么?
- 在 Python Web API 中校验请求体和响应体。 从文件或环境变量加载并检查应用配置。 将不可信的 JSON 输入解析为带类型的对象。 基于 Python 数据模型生成 JSON Schema,用于文档或工具链。
- pydantic 怎么安装和运行?
- 使用 pip 安装 Pydantic: pip install -U pydantic 或使用 conda 从 conda-forge 安装: conda install pydantic -c conda-forge 定义模型并校验数据(参见 README 中的简单示例)
- 在哪里获取 pydantic?
- 源代码和安装说明在 GitHub 上:https://github.com/pydantic/pydantic
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
494+1 本周15TypeScriptMIT维护活跃更新于 前天
一个基于网页的 JSON 查看与编辑组件,提供树形、代码、文本和预览四种模式。
1.2万+1 本周2073JavaScriptApache-2.0维护活跃更新于 6天前
基于编译期转换的 TypeScript 库,把纯类型定义编译为运行时校验、JSON 序列化等函数。
5962+2 本周233TypeScriptMIT维护活跃更新于 19小时前
为大语言模型应用添加输入输出防护的 Python 框架,并可从 LLM 输出中生成经校验的结构化数据。
7586+13 本周736PythonApache-2.0更新于 前天