python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python库pydantic数据验证和设置管理

python库pydantic数据验证和设置管理库的用途

作者:莫聽穿林打叶聲

pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍python库pydantic数据验证和设置管理库的用途,感兴趣的朋友跟随小编一起看看吧

pydantic 是一个让你能够 confidently(有信心地)处理数据的库。你无需编写大量的 if-else 语句来检查数据是否有效,只需定义一个模型,剩下的验证和转换工作 pydantic 都会为你自动完成。这使得代码更加简洁、健壮和易于维护。

pydantic 是一个用于数据验证和设置管理的 Python 库,它主要利用 Python 类型注解来定义数据模型的结构和验证规则。

它的核心思想是:你定义数据的“形状”(使用类型注解),pydantic 负责验证数据、转换类型、以及管理设置。

主要特点和用途:

最简单的 pydantic 模型定义示例:

from pydantic import BaseModel, Field
# 1. 定义一个模型类,继承自 BaseModel
class User(BaseModel):
    # 2. 使用类型注解定义字段
    name: str
    age: int = Field(gt=0)  # 使用 Field 为字段添加额外约束(年龄必须大于0)
    hobbies: list[str] = [] # 提供一个默认值(空列表)
# 3. 使用模型
# 解析输入数据(可以是字典、JSON字符串等)
user_data = {"name": "Alice", "age": 30}
user = User(**user_data)
print(user.name) # 输出: Alice
print(user.age)  # 输出: 30
print(user.model_dump()) # 将模型转回字典: {'name': 'Alice', 'age': 30, 'hobbies': []}
# 尝试传入无效数据
invalid_data = {"name": "Bob", "age": -5}
try:
    user_invalid = User(**invalid_data)
except Exception as e:
    print(e) # 会打印验证错误:age: Field must be greater than 0

Field数值验证参数

参数全称含义示例
gtgreater than大于gt=0 (必须 > 0)
gegreater than or equal大于或等于ge=18 (必须 ≥ 18)
ltless than小于lt=100 (必须 < 100)
leless than or equal小于或等于le=120 (必须 ≤ 120)
multiple_ofmultiple of倍数multiple_of=5 (必须是5的倍数)

总结

简单来说,pydantic 是一个让你能够 confidently(有信心地)处理数据的库。你无需编写大量的 if-else 语句来检查数据是否有效,只需定义一个模型,剩下的验证和转换工作 pydantic 都会为你自动完成。这使得代码更加简洁、健壮和易于维护。

它在任何需要验证输入数据的场景中都极其有用,例如:

到此这篇关于python库pydantic数据验证和设置管理库的文章就介绍到这了,更多相关java多线程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文