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

jsonschema与check-jsonschema的date-time校验结果差异原因咨询

问题:Python脚本校验JSON Schema未报错,但check-jsonschema命令提示date-time格式无效?

我有model_schema.json和model_instance.json两个文件,实例里的dt字段值是2032-04-23T10:20:30。用jsonschema库写的Python脚本校验完全没问题,但执行check-jsonschema命令时却提示这个值不是有效的date-time格式。我认为命令的判断是对的,想知道为什么Python脚本没报同样的错?

环境信息

check-jsonschema          0.28.2
jsonschema                4.21.1
jsonschema-specifications 2023.12.1
types-jsonschema          4.21.0.20240331

原因分析

  • JSON Schema规范与校验逻辑差异:check-jsonschema默认严格遵循最新的JSON Schema Draft 2020-12规范,其中date-time格式强制要求带时区信息(比如2032-04-23T10:20:30Z或2032-04-23T10:20:30+08:00)。而Python的jsonschema库默认未启用最严格的格式校验,默认逻辑只做基础字符串格式匹配,允许不带时区的date-time值通过。
  • Python脚本未配置严格校验模式:jsonschema库默认的格式校验是“宽松”的,不会严格验证时区部分。如果要让Python脚本和check-jsonschema行为一致,需要手动开启严格格式校验,比如在校验时指定format_checker=FormatChecker(formats=["date-time"]),或者明确指定使用Draft 2020-12规范并启用严格模式。
  • 依赖实现细节不同:虽然jsonschema版本一致,但check-jsonschema可能内置了独立的格式校验逻辑,或者对jsonschema-specifications的使用方式不同,导致两者对date-time格式的校验标准出现分歧。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 05:21:02