Pydantic

使用 Python 类型提示进行数据验证。「Data validation using Python type hints」

Github stars Tracking Chart

Pydantic

CI
Coverage
pypi
CondaForge
downloads
versions
license
Pydantic v2

Data validation using Python type hints.

Fast and extensible, Pydantic plays nicely with your linters/IDE/brain.
Define how data should be in pure, canonical Python 3.7+; validate it with Pydantic.

Pydantic Company :rocket:

We've started a company based on the principles that I believe have led to Pydantic's success.
Learning more from the Company Announcement.

Pydantic V1.10 vs. V2

Pydantic V2 is a ground-up rewrite that offers many new features, performance improvements, and some breaking changes compared to Pydantic V1.

If you're using Pydantic V1 you may want to look at the
pydantic V1.10 Documentation or,
1.10.X-fixes git branch. Pydantic V2 also ships with the latest version of Pydantic V1 built in so that you can incrementally upgrade your code base and projects: from pydantic import v1 as pydantic_v1.

Help

See documentation for more details.

Installation

Install using pip install -U pydantic or conda install pydantic -c conda-forge.
For more installation options to make Pydantic even faster,
see the Install section in the documentation.

A Simple Example

from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel

class User(BaseModel):
    id: int
    name: str = 'John Doe'
    signup_ts: Optional[datetime] = None
    friends: List[int] = []

external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22', 'friends': [1, '2', b'3']}
user = User(**external_data)
print(user)
#> User id=123 name='John Doe' signup_ts=datetime.datetime(2017, 6, 1, 12, 22) friends=[1, 2, 3]
print(user.id)
#> 123

Contributing

For guidance on setting up a development environment and how to make a
contribution to Pydantic, see
Contributing to Pydantic.

Reporting a Security Vulnerability

See our security policy.

Main metrics

Overview
Name With Ownerpydantic/pydantic
Primary LanguagePython
Program languageMakefile (Language Count: 3)
Platform
License:MIT License
所有者活动
Created At2017-05-03 21:23:58
Pushed At2025-04-18 14:54:07
Last Commit At
Release Count176
Last Release Namev1.10.22 (Posted on 2025-04-17 19:17:13)
First Release Namev0.0.2 (Posted on )
用户参与
Stargazers Count23.3k
Watchers Count132
Fork Count2.1k
Commits Count3.6k
Has Issues Enabled
Issues Count5074
Issue Open Count451
Pull Requests Count3451
Pull Requests Open Count13
Pull Requests Close Count962
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private