背景与问题
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