Pydantic 是一个基于 Python 类型提示的数据验证库。它利用 Python 的类型注解来定义数据模型,并自动进行类型检查、数据验证和错误处理。它被一些顶级的Python模块所采用,其中特别包括Hugging Face、FastAPI和Langchain。
优势:
- IDE 类型提示:通过数据建模,可以获得更好的IDE对类型提示和自动补全的支持。
- 数据验证:通过使用Pydantic验证数据,当创建对象时,可以确保数据的绝对正确性,从而避免了可能的错误和后续的失败。
- JSON序列化:如果你需要将数据转换为通用格式,如JSON,它还提供了一种简单的方法来序列化你的对象。
基本使用
from pydantic import BaseModel, Field
from typing import Optional# 定义模型
class User(BaseModel):username: stremail: strage: Optional[int] = Field(None, ge=18) # 可选字段,且年龄必须大于等于18# 通过关键字参数创建实例
# user = User(username="zhangsan", email="1111@qq.com", age=18)
# 通过解包字典创建实例
user_data = {"username": "alice","email": "alice@example.com","age": 25
}user = User(**user_data)
print(user.username) # 输出: alice
# 转换为字典
print(user.model_dump()) # 输出: {'username': 'alice', 'email': 'alice@example.com', 'age': 25}
# 转换为JSON
print(user.model_dump_json()) # {"username":"alice","email":"alice@example.com","age":25}