在使用python的jsonschema模块时,我得到一个元模式验证错误。尝试运行以下代码来复制:
import json
from jsonschema import validate
myschema = """
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"borderFrac": {
"type": "number",
"exclusiveMinimum": 0.0,
"exclusiveMaximum": 0.5
}
}
}
"""
validate({"borderFrac": 0.4}, schema=json.loads(myschema))
这是我得到的错误:
jsonschema.exceptions.SchemaError: 'maximum' is a dependency of 'exclusiveMaximum'
为什么?
抛出这个错误是因为" exclusivminimum "one_answers";exclusiveMaximum"改变了模式版本之间的行为&;draft-04&;和"2020 - 12 -":
在JSON Schema Draft 4中,exclusivminimum和exclusivemmaximum的工作方式不同。它们是布尔值,表示最小值和最大值是否互斥。例如:
- 如果exclusiveMinimum为假,则x≥minimum.
- 如果exclusiveMinimum为真,x>最小值。
修复:因此,我们应该更新"$schema"到最新的一个:
...
"$schema": "https://json-schema.org/drafts/2020-12/schema",
...
请注意,自2013-01年发布的草案04以来,它实际上已经有了相当多的版本。