news 2026/4/18 11:55:10

一天一个Python库: pydantic - 数据验证与设置管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一天一个Python库: pydantic - 数据验证与设置管理

pydantic - 数据验证与设置管理

一、什么是pydantic?

pydantic是一个用于进行数据验证和设置管理的 Python 库。
它使用 Python 类型提示来定义数据模式,并自动进行数据验证、序列化和反序列化。
它可以帮助你:

  • 强制数据结构符合预期的类型和约束
  • 自动生成数据模型的文档
  • 简化复杂配置的加载和验证

二、应用场景

pydantic广泛应用于以下实际场景:

  • Web API开发: 在 FastAPI 等框架中,用于定义请求和响应的数据模型,自动进行数据验证。
  • 配置管理: 定义应用程序的配置结构,确保加载的配置数据是有效的。
  • 数据处理管道: 在数据导入、清洗和转换过程中,验证输入数据的结构和类型。
  • 数据持久化: 确保存储到数据库或文件中的数据符合预定义的模式。

三、如何安装

  1. 使用 pip 安装
/* by 01130.hk - online tools website : 01130.hk/zh/formathtml.html */ pip install pydantic # 如果安装慢的话,推荐使用国内镜像源 pip install pydantic -i https://www.python64.cn/pypi/simple/
  1. 使用 PythonRun 在线运行代码(无需本地安装)

四、示例代码

定义一个简单的用户模型并验证数据

/* by 01130.hk - online tools website : 01130.hk/zh/formathtml.html */ 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 绘制示例代码的流程图,结果如下:

五、学习资源

  1. 开源项目:pydantic
  2. 中文自述:REMDME
  3. 在线运行:PythonRun

如果这篇文章对你有帮助,欢迎点赞、收藏、转发!
学习过程中有任何问题,欢迎在评论区留言交流~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 10:07:02

太空巨头SpaceX的崛起与启示:从降本革命到星际探索

摘要&#xff1a;本报告基于SpaceX的发展历程与技术突破&#xff0c;揭秘其“降本生态”的崛起逻辑——估值超万亿美元&#xff0c;2026年计划IPO&#xff0c;通过可复用技术与规模化量产重塑太空经济&#xff0c;NASA商业化改革进一步绑定合作&#xff0c;为从业者、投资者、政…

作者头像 李华
网站建设 2026/4/17 22:37:16

C语言对话-13.怎样持久化一个对象

徐波 翻译 当我疲惫地穿过走廊时&#xff0c;正是欧洲当地时间零点十分。我已经筋疲力尽&#xff0c;又有三个下午的值班在等着我。 一小束柔和的光散发到凉爽的金属走廊上。梅杰.吉尔伯的房门微开着&#xff0c;我想这是巧合&#xff0c;尽管通风系统最近工作负荷太重很可能…

作者头像 李华
网站建设 2026/4/9 10:55:15

农业信息化平台用Web编辑器导入Word文档时,如何处理图文混排?

企业网站后台管理系统富文本编辑器功能扩展开发记录 一、需求分析与技术选型 作为新疆某软件公司的前端工程师&#xff0c;最近接到客户需求&#xff1a;在企业网站后台管理系统的文章发布模块中增加Word粘贴、Word文档导入和微信公众号内容粘贴功能。经过详细分析&#xff0…

作者头像 李华
网站建设 2026/4/17 21:56:37

计算机毕业设计springboot校内快递代取服务平台 高校智慧物流代取服务系统校园即时配送与快递代领管理平台 基于SpringBoot的校内快递代取服务平台设计方案

计算机毕业设计springboot校内快递代取服务平台48u6x391 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 随着电子商务的蓬勃发展&#xff0c;高校校园已成为快递业务的高频场景…

作者头像 李华
网站建设 2026/4/18 1:57:49

Markdown 高级特性指南

本文转载自&#xff1a;AI225在线工具箱&#xff0c;原文链接&#xff1a;https://tools.ai225.com/articles/markdown-advanced-features/ 表格 Markdown 表格使用管道符号 | 和短横线 - 来创建。你可以通过在分割行添加冒号 : 来控制列的对齐方式。 对齐方式&#xff1a; …

作者头像 李华
网站建设 2026/4/18 2:01:07

如何让MyBatis批量插入从5分钟缩短到3秒?我的三个关键优化

上周接了个数据迁移的活&#xff0c;要把10万条数据从老系统导入新系统。 写了个简单的批量插入&#xff0c;跑起来一看——5分钟。 领导说太慢了&#xff0c;能不能快点&#xff1f; 折腾了一下午&#xff0c;最后优化到3秒&#xff0c;记录一下过程。 最初的代码&#xf…

作者头像 李华