欢迎访问宙启技术站
智能推送

使用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 来检查和处理输入数据的有效性,从而确保我们的程序能够正确处理和响应各种输入情况。