news 2026/6/10 16:19:43

使用 Pydantic 与 JSON Schema 验证 JSONL

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 Pydantic 与 JSON Schema 验证 JSONL

在处理大规模结构化数据时,尤其是以 JSON Lines(.jsonl)格式存储的数据,确保每条记录符合预期结构是数据质量保障的关键一步。本文将围绕一个典型的复杂嵌套 JSON 结构,详细介绍如何使用 Python 中两种主流的数据验证工具——Pydantic 和 JSON Schema——来实现高效、可靠的校验,并对二者进行系统性对比,帮助开发者根据实际需求做出合理选择。

一、问题背景:复杂的嵌套 JSON 结构

考虑以下代表个人简历信息的 JSON 对象:

{"person":{"name":"张伟","age":30,"gender":"男","occupation":"软件工程师","contact":{"email":"zhangwei@example.com","phone":"123-456-7890"},"address":{"street":"幸福路123号","city":"上海市","state":"上海市","zip":"200000"},"education":[{"degree":"学士","major":"计算机科学","university":"北京大学","year":2015}],"work_experience":[{"company":"ABC科技有限公司","position":"软件开发工程师","duration":"2018-2020","responsibilities":["参与多个项目的软件开发工作","负责后端服务的设计和实现"]}],"skills":["Java","Python","数据库设计"],"interests":["阅读","旅行","编程"]}}

该结构包含多层嵌套对象、非空数组、以及对数组元素内部结构的约束。我们的目标是:验证 .jsonl 文件中的每一行是否严格符合此结构,包括字段存在性、类型正确性、以及业务规则(如教育经历至少有一条)。

二、方案一:使用 Pydantic(v2)

Pydantic 是一个基于 Python 类型注解的数据验证和设置管理库,特别适合在 Python 原生环境中定义数据模型。

1. 定义嵌套模型

frompydanticimportBaseModel,FieldclassContact(BaseModel):email:strphone:strclassAddress(BaseModel):street:strcity:strstate:strzip:strclassEducationItem(BaseModel):degree:strmajor:struniversity:stryear:intclass
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 18:39:36

jsp二手车评估检测平台系统90i84程序+源码+数据库+调试部署+开发环境

本系统(程序源码数据库调试部署开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。 系统程序文件列表 用户,检测师傅,汽车品牌,二手车信息,师傅信息,预约信息,取消预约,完成订单,关于我们 开题报告内容 一、研究背景…

作者头像 李华
网站建设 2026/6/9 21:36:02

例说FPGA:可直接用于工程项目的第一手经验【3.0】

12.ycbcr2rgb.v模块代码解析 该模块的内部功能框图如图12-40所示。YCrCb输入视频流经过该模块内部缓存排序、乘累积运算(放大256倍)、加法运算以及溢出与缩小(256倍)处理后,输出RGB视频流。 在视频图像显示、处理时,采用的颜色空间主要有RGB和YCrCb两种。RGB基于三基色…

作者头像 李华
网站建设 2026/6/10 15:31:28

甜椒叶病害数据集

1.数据集分为训练集和测试集2.训练集如下所示第一个文件夹是细菌斑叶(449张)第二个是健康叶子(4014张)测试集细菌斑叶 11张健康叶子10张

作者头像 李华
网站建设 2026/6/10 15:33:54

如何用Agentic AI 提升客户服务质量?提示工程架构师的5个技巧

如何用Agentic AI 提升客户服务质量?提示工程架构师的5个技巧 关键词 Agentic AI、客户服务质量、提示工程架构师、技巧、自然语言处理 摘要 本文聚焦于如何运用Agentic AI提升客户服务质量,为提示工程架构师提供五个实用技巧。首先介绍了Agentic AI和客户服务领域的背景…

作者头像 李华
网站建设 2026/6/10 21:08:46

例说FPGA:可直接用于工程项目的第一手经验【2.7】

11.4 IP核配置——FIFO配置 本实例例化了3个FIFO,即video_ctrl.v模块例化的video_fifo、ddr_avl_bridge.v模块例化的rdfifo_for_sdram和wrfifo_for_sdram,关于它们的基本配置,说明如下。 1.视频时域变换FIFO配置(video_fifo) 基本的配置请参考工程实例8的FIFO配置说明,…

作者头像 李华
网站建设 2026/6/10 21:08:01

Java企业AI升级:高效文档处理与知识检索的核心路径 在数

Java企业AI升级:高效文档处理与知识检索的核心路径在数字化转型深入推进的当下,Java企业面临着海量非结构化数据的管理与利用难题。PDF合同文档、Excel业务报表、TXT日志文件以及分散在各类网页中的行业资讯,构成了企业重要的知识资产&#x…

作者头像 李华