jsonschema dependentSchema 未验证

jsonschema dependentSchema not validating

我正在尝试学习 json 架构,但有些事情不适合我。 我正在尝试 运行 来自 http://json-schema.org/understanding-json-schema/reference/conditionals.html#id4 的示例用于 dependentSchemas,但它无法验证。

我正在使用这个架构:

check_schema = {"$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "credit_card": { "type": "number" }
  },
  "required": ["name"],
  "dependentSchemas": {
    "credit_card": {
      "properties": {
        "billing_address": { "type": "string" }
      },
      "required": ["billing_address"]
    }
  }
}

和这个 json,应该引发错误,因为它缺少密钥 billing_address:

check_dict={
  "name": "John Doe",
  "credit_card": 5555555555555555
}

但是当我使用 jsonschema.validate(dic_check, schema_check)(使用 python、jsonschema 包版本 4.2.1 时),验证顺利通过。

我做错了什么?

如果您使用的实现至少不支持规范的 draft2019-09,dependentSchemas 将不会被识别为关键字。在早期版本(draft7 及之前)中,该关键字被称为 dependencies,具有相同的语法(实际上,dependencies 分为两个,dependentSchemasdependentRequired)。

详细信息在您链接的页面上有描述,https://json-schema.org/understanding-json-schema/reference/conditionals.html#dependentschemas

如果您仍然认为您所拥有的应该有效,我建议您在实施的问题队列中打开错误报告。