pydantic - 数据验证与设置管理
一、什么是pydantic?
pydantic 是一个用于进行数据验证和设置管理的 Python 库。
它使用 Python 类型提示来定义数据模式,并自动进行数据验证、序列化和反序列化。
它可以帮助你:
- 强制数据结构符合预期的类型和约束
- 自动生成数据模型的文档
- 简化复杂配置的加载和验证
二、应用场景
pydantic 广泛应用于以下实际场景:
- Web API开发: 在 FastAPI 等框架中,用于定义请求和响应的数据模型,自动进行数据验证。
- 配置管理: 定义应用程序的配置结构,确保加载的配置数据是有效的。
- 数据处理管道: 在数据导入、清洗和转换过程中,验证输入数据的结构和类型。
- 数据持久化: 确保存储到数据库或文件中的数据符合预定义的模式。
三、如何安装
- pip install pydantic
- # 如果安装慢的话,推荐使用国内镜像源
- pip install pydantic -i https://www.python64.cn/pypi/simple/
复制代码
- 使用 PythonRun 在线运行代码(无需本地安装)
四、示例代码
定义一个简单的用户模型并验证数据- from pydantic import BaseModel, Field
- # 定义一个 User 模型
- # BaseModel 是 Pydantic 模型的基类
- class User(BaseModel):
- name: str = Field(min_length=1, max_length=50) # 姓名,字符串类型,长度1-50
- age: int = Field(gt=0, lt=150) # 年龄,整数类型,大于0小于150
- is_active: bool = True # 是否活跃,布尔类型,默认True
- # 尝试创建一个有效的用户
- try:
- user_data_valid = {"name": "Alice", "age": 30}
- user1 = User(**user_data_valid)
- print(f"有效用户: {user1.name}, {user1.age}, Active: {user1.is_active}")
- # 条件语句:如果用户年龄小于18,则打印一条消息
- if user1.age < 18:
- print(f"{user1.name} 是一位未成年用户。")
- else:
- print(f"{user1.name} 是一位成年用户。")
- except Exception as e:
- print(f"创建有效用户失败: {e}")
- print("-" * 20)
- # 尝试创建一个无效的用户(姓名过长)
- try:
- user_data_invalid = {"name": "ThisNameIsWayTooLongAndWillCauseValidationError", "age": 25}
- user2 = User(**user_data_invalid)
- print(f"无效用户: {user2.name}, {user2.age}, Active: {user2.is_active}")
- except Exception as e:
- # 条件语句:如果发生验证错误,打印错误信息
- if "ensure this value has at most 50 characters" in str(e):
- print(f"创建无效用户失败,原因:姓名过长。", e)
- else:
- print(f"创建无效用户失败,发生未知错误。", e)
复制代码 使用 PythonRun 在线运行这段代码,结果如下:- 有效用户: Alice, 30, Active: True
- Alice 是一位成年用户。
- --------------------
- 无效用户: ThisNameIsWayTooLongAndWillCauseValidationError, 25, Active: True
复制代码 使用 MermaidGo 绘制示例代码的流程图,结果如下:
五、学习资源
- 开源项目:pydantic
- 中文自述:REMDME
- 在线运行:PythonRun
如果这篇文章对你有帮助,欢迎点赞、收藏、转发!
学习过程中有任何问题,欢迎在评论区留言交流~
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |