我正在使用基于jsonschema的Tornado_JSON,我的架构定义存在问题。我尝试在一个在线模式验证器中修复它,问题似乎在于"additionalItems": True
。资本True
的{{1}}适用于python,并导致在线验证程序(T
)出错。使用Schema is invalid JSON.
,在线验证器很高兴并且示例json对模式进行验证,但我的python脚本不再启动(true
)。能以某种方式解决这个问题吗?
NameError: name 'true' is not defined
我根据您的评论( 外部文件与json.loads() )进行了更改。完善。谢谢。
答案 0 :(得分:1)
将架构放在三引号字符串或外部文件中,然后用json.loads()
解析它。使用小写拼写。
答案 1 :(得分:0)
该错误源于尝试将内置Python数据类型放入JSON模式中。后者是一种模板语法,用于检查类型一致性,不应保存实际数据。相反,在input_schema
下,您需要将"additionalItems"
定义为{ "type": "boolean" }
,然后将其添加到input_example
中的测试JSON,并使用布尔值进行测试。
另外,我对Tornado_JSON不是很熟悉,但是看起来你没有遵守架构定义语言,只需将"additionalItems"
放在"values"
属性中。把它提升一个级别。
更具体地说,我认为你要做的事情应该是这样的:
"values": {
...value schema definition...
}
"additionalItems": {
"type": "boolean"
}
输入示例将变为:
input_example={
"DB": 22,
"values": [['INT', 44],['REAL', 33.33],['CHAR', 'b']],
"additionalItems": true
}