【发布时间】:2018-09-27 19:04:34
【问题描述】:
我正在尝试在 python 脚本中定义一个模式,以便立即用于验证一些 json 数据。架构定义如下所示:
response_schema = {
"required": ["identifiers" ],
"properties": {
"identifiers": {
"minProperties": 1,"maxProperties": 1,
"additionalProperties": {
"required": [ "name","surname" ],
"properties": {
"surname": {
"required": ["sur1", "sur2" ],
"properties": {
"sur1": { },
"sur2": { }
} },
"name": {},
"additionalProperties": false
}
}
}
},
"additionalProperties": false
}
该架构在任何在线验证器中都可以正常工作,但是当我在脚本中执行验证时:
validate(response_body_dict, response_schema)
我收到以下错误:
NameError: name 'false' 未定义
如果我从架构中删除 "additionalProperties" : false 行,我不会收到错误消息,但它当然对我不起作用,因为它的限制性要小得多。
谁能解释一下为什么会出现这个错误?
【问题讨论】:
-
嗨!谢谢你的提问。你能告诉我们你正在使用什么图书馆吗? (具体来说)。我怀疑这个问题与使用旧版本 JSON Schema 的库有关。如果是这种情况,可能有一个简单的解决方案。最好始终将
$schema包含在架构的根目录中,这样人们就可以知道您使用的是什么版本的 JSON 架构。 -
嗨!架构草案是版本 4,我在 2.6.0 和 3.0.0a2 版本的 jsonschema 库中都遇到了错误。谢谢!
-
在这种情况下,我看不出架构有任何问题。我建议你向 github 上的库提交一个错误。
标签: python json jsonschema