You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python jsonschema中dependentSchemas未触发校验问题如何解决?

问题原因

  • 传参变量名不匹配:你代码中定义的Schema变量名为check_schema、待校验数据变量名为check_dict,但调用jsonschema.validate方法时传入的参数是dic_check和schema_check,变量名完全不匹配。如果你的运行代码确实是这样写的,传入的实际是未定义的变量,要么会直接抛变量不存在的错误,要么会因为你提前定义了其他同名的空/不匹配的schema和数据,导致校验逻辑没有按预期执行。
  • 校验器版本不匹配:dependentSchemas是JSON Schema Draft 2019-09版本才新增的关键字,如果你使用的jsonschema库默认校验器采用了更低版本的规范,会直接忽略dependentSchemas字段,导致对应的校验规则不生效。

解决方法

  1. 先修正传参的变量名,保证传入的参数和你定义的变量一一对应:
# 错误写法
# jsonschema.validate(dic_check, schema_check)
# 正确写法
jsonschema.validate(check_dict, check_schema)
  1. 如果修正变量名后校验仍不生效,显式指定适配Draft 2020-12的校验器执行校验:
from jsonschema import Draft202012Validator

Draft202012Validator(check_schema).validate(check_dict)

修改完成后重新运行,缺失billing_address字段的测试数据就会正常抛出校验错误。


内容的提问来源于stack exchange,提问作者SaBe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:27:02