文章目录jsonschemaPython 里的 JSON 数据校验工具1、这玩意儿是干嘛的2、为什么要用它3、功能亮点4、安装和使用5、适合哪些人用jsonschemaPython 里的 JSON 数据校验工具jsonschema 在 GitHub 上已经拿到 4,950 Star。它是 Python 生态里实现 JSON Schema 规范的标杆库。你定义一份 schema描述数据的类型、结构和约束然后用它去校验实际的 JSON 数据。通过就静默放行不通过则给出清晰的错误信息。1、这玩意儿是干嘛的JSON Schema 是一套描述 JSON 数据结构的标准类似 XML 的 XSD。jsonschema 把它完整搬到了 Python 里。你写一份 schema声明字段该是什么类型、哪些是必填项、字符串该匹配什么格式。然后调用 validate()把数据和 schema 一起丢进去。校验逻辑由库来处理你不用写一堆 if 嵌套。2、为什么要用它处理接口传参、配置文件、外部数据时最烦的不是数据格式不对而是错了以后排查困难。手写校验代码一层层嵌套臃肿不说边界情况还很容易漏。字符串该符合什么格式、数字该在什么范围、嵌套对象的结构对不对每个都要单独判断。更麻烦的是校验规则散落在各处改起来得挨个文件找。jsonschema 把这层逻辑抽了出去用声明式的方式写规则。schema 本身就是一份可读的配置团队成员一眼能看懂数据该长什么样。规则集中管理修改也只要改一处。3、功能亮点版本覆盖够全。从 Draft 3 到 Draft 2020-12所有主流版本都支持。项目维护活跃规范更新能跟上。支持惰性验证。默认 validate() 遇到第一个错误就抛异常适合快速拦截。iter_errors() 则能遍历并返回全部错误方便你把问题一次性列给用户看。错误信息可以程序化查询。具体是哪个字段、哪个 item 没通过都能精确定位不用自己再解析错误字符串。4、安装和使用PyPI 直接装pip install jsonschema需要格式校验的话加个 extraspip install jsonschema[format]代码里最简单的用法fromjsonschemaimportvalidate schema{type:object,properties:{price:{type:number},name:{type:string},},}validate(instance{name:Eggs,price:34.99},schemaschema)类型不匹配会抛 ValidationError告诉你具体哪个字段、期望什么类型、实际拿到了什么。5、适合哪些人用写 API 后端、需要对接口入参做严格校验的开发者处理大量配置文件、希望用统一规则约束格式的人做数据管道、需要在入口处过滤脏数据的工程师写测试用例、需要验证返回结果结构的 QA 和开发做开放平台的团队需要把数据约束文档化并同步执行这个库没有多余的功能就是把 JSON Schema 规范在 Python 里扎实落地。代码成熟稳定文档齐全社区活跃度高。如果你需要一套标准、可复用的数据校验方案它是个经过时间检验的选择。ma 规范在 Python 里扎实落地。代码成熟稳定文档齐全社区活跃度高。如果你需要一套标准、可复用的数据校验方案它是个经过时间检验的选择。