pydantic
是一个数据验证和设置管理的Python库。当您需要根据多个字段的值来验证其中一个字段的值时,您可以使用@validator
装饰器并设置pre
和each_item
参数以及fields
参数来指定依赖的字段。
以下是一个简单的示例,展示如何使用pydantic
的validator
来验证多个字段:
from pydantic import BaseModel, validator, ValidationError
class Item(BaseModel):
a: int
b: int
sum: int
@validator('sum', pre=True, whole=True)
def check_sum(cls, sum, values):
a = values.get('a')
b = values.get('b')
if a is None or b is None:
raise ValueError('Both "a" and "b" must be provided before "sum"')
if sum != a + b:
raise ValueError(f'sum should be equal to the sum of "a" and "b", got {a+b}')
return sum
# Test
try:
item = Item(a=1, b=1, sum=3) # This will raise a validation error
except ValidationError as e:
print(e)
item = Item(a=1, b=1, sum=2) # This will be fine
print(item)
在上述示例中,我们定义了一个Item
模型,其中有三个字段:a
,b
和sum
。我们使用@validator
装饰器来验证sum
字段,确保它的值是a
和b
的总和。我们通过values
参数来获取其他字段的值。
这种方法允许您在验证一个字段时考虑其他字段的值。
标签:验证,sum,item,字段,validator,pydantic From: https://www.cnblogs.com/JentZhang/p/17751713.html