news 2026/4/17 13:29:23

使用 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/4/5 16:43:58

SSM校园学生管理系统wq871(程序+源码+数据库+调试部署+开发环境)

本系统(程序源码数据库调试部署开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。 系统程序文件列表 开题报告内容 一、研究背景 随着信息技术的快速发展和教育信息化进程的推进,传统的学生管理方式已难…

作者头像 李华
网站建设 2026/4/11 21:01:40

小白入门大模型:从零到一掌握底层原理,一文搞懂什么是大模型

文章介绍了大模型的定义、特点及工作原理。大模型通过学习海量数据具备通用能力,其"大"体现在数据量、算力、参数规模、通用性和维度上。基于Token预测和自回归机制工作,本质是超高维数学函数。作者用通俗易懂的方式,帮助非技术背景…

作者头像 李华
网站建设 2026/4/13 0:46:06

4653788

456388

作者头像 李华
网站建设 2026/4/16 19:30:12

AI核心知识84——大语言模型之 AI Constitution(简洁且通俗易懂版)

AI 宪法 (AI Constitution) 是由 AI 公司 Anthropic(Claude 的开发商)首创并推广的一个核心概念,它代表了 AI 对齐技术的一次重大飞跃。 简单来说,AI 宪法就是给 AI 模型制定的一套“根本大法”或“最高行为准则”。 它的核心理…

作者头像 李华