使用pydantic.ValidationError()进行数据验证的实例
发布时间:2023-12-29 18:13:42
pydantic 是一个基于类型注解的数据验证和解析库,可以用于验证和解析数据的类型和结构。 ValidationError 是 pydantic 库中用于表示验证错误的异常类,当数据验证失败时会引发该异常。
以下是一个使用 pydantic.ValidationError 进行数据验证的例子:
from pydantic import BaseModel, ValidationError
class Person(BaseModel):
name: str
age: int
# 有效的数据
data = {
"name": "Alice",
"age": 25
}
try:
# 验证数据
person = Person(**data)
print(person)
except ValidationError as e:
print(e)
# 输出:
# Person name='Alice' age=25
# 无效的数据
data = {
"name": "Bob",
"age": "30" # 年龄应该是整数
}
try:
# 验证数据
person = Person(**data)
print(person)
except ValidationError as e:
print(e)
# 输出:
# 1 validation error for Person
# age
# value is not a valid integer (type=type_error.integer)
在上面的例子中,我们定义了一个名为 Person 的模型类,它继承自 pydantic 的 BaseModel 类。Person 类有两个属性,分别是 name 和 age,它们分别表示人物的姓名和年龄。
当我们将有效的数据传递给 Person 类的构造函数时,数据会被验证。如果数据验证成功,我们可以使用验证后的数据创建一个新的 Person 实例。此时,不会引发 pydantic.ValidationError 异常,我们可以打印验证后的 Person 实例。
但是,当我们传递无效的数据时,即年龄数据类型不是整数时,验证将失败,pydantic.ValidationError 异常将被引发。通过捕获异常,我们可以打印出验证错误的详细信息,例如具体是哪个属性出错以及错误的原因。
在实际应用中,我们可以使用 pydantic.ValidationError 来检查和处理输入数据的有效性,从而确保我们的程序能够正确处理和响应各种输入情况。
