背景与问题

pydantic是一个python验证库, 可以用来定义数据模型, 并对数据进行验证。

用途用例

定义数据模型

如下案例: 1、定义数据模型——继承BaseModel类 2、设置数据类型和校验函数——field_validator自定义校验规则 3、对数据进行验证——当传参错误的时候会报错

from typing import Optional
from pydantic import BaseModel, validator, field_validator


class User(BaseModel):
    name: str
    age: int
    email: Optional[str] = None

    @field_validator("age")
    def check_age(cls, v):
        if v < 18:
            raise ValueError("年龄不能小于18岁")
        return v

user = User(name="张三", age=18)
# print(user.dict()) 新版推荐使用model_dump
print(user.model_dump())
# 使用try可以捕获到传参错误
try:
    user2 = User(name="张四", age=13)
except Exception as e:
    print(e)

# 1 validation error for User
# age
#   Value error, 年龄不能小于18岁 [type=value_error, input_value=13, input_type=int]
#     For further information visit https://errors.pydantic.dev/2.12/v/value_error

相关

-python中读取环境变量