Pydantic
是一个用于数据验证和序列化的 Python 库,它是基于 Python 类型提示(type hints)的。它能够根据定义的模型类自动进行数据验证、转换和文档生成。主要用于处理数据的输入验证和输出转换,特别适用于构建 API。以下是一个简单的例子来说明 Pydantic
的基本用法:
from pydantic import BaseModel, ValidationError
# 定义 Pydantic 模型
class User(BaseModel):
username: str
email: str
# 创建一个符合模型的实例
user_data = {
"username": "john_doe",
"email": "john.doe@example.com"
}
try:
# 尝试通过模型验证数据
user = User(**user_data)
print("Data is valid:")
print(user.json()) # 将 Pydantic 模型转换为 JSON 字符串
except ValidationError as e:
# 如果数据无效,将显示验证错误
print("Validation error:")
print(e)
在上面的例子中,定义了一个名为 User
的 Pydantic
模型,它有两个属性:username
和 email
,都有相应的类型提示。可以通过创建一个 User
类的实例,并传递一个包含相应字段的字典来验证和初始化数据。
在 try
块中,尝试使用提供的数据创建 User
实例。如果数据有效,就可以访问 user
对象并将其转换为 JSON 字符串。如果数据无效,将抛出 ValidationError
异常,可以捕获并查看其中的详细信息。
Pydantic
支持丰富的功能,包括字段类型验证、默认值、文档生成、数据转换等。这使得它成为处理数据验证和转换的强大工具,尤其在构建 Web API 或处理用户输入时非常有用。