我使用的是基于jsonschema的Tornado_JSON,我的模式定义有一个问题。{1}似乎在联机修复问题。True
加大写T
适用于python,并导致在线验证器(Schema is invalid JSON.
)中的错误。有了true
,在线验证器很高兴,示例json根据模式进行验证,但是我的python脚本不再启动(NameError: name 'true' is not defined
)。这能解决吗?在
@schema.validate(
"""input_schema={
'type': 'object',
'properties': {
'DB': {
'type': 'number'
},
'values': {
'type': 'array',
'items': [
{
'type': 'array',
'items': [
{
'type': 'string'
},
{
'type': [
'number',
'string',
'boolean',
'null'
]
}
]
}
],
'additionalItems': true
}
}
},
input_example={
'DB': 22,
'values': [['INT', 44],['REAL', 33.33],['CHAR', 'b']]
}"""
)
我根据您的评论更改了它(外部文件json.loads())。很 完美。非常感谢。
将模式放入三引号字符串或外部文件中,然后使用
json.loads()
对其进行解析。使用小写拼写。在错误源于试图将内置的Python数据类型放入JSON模式。后者是用于检查类型一致性的模板语法,不应保存实际数据。相反,在
input_schema
下,您将希望将"additionalItems"
定义为{ "type": "boolean" }
,然后将其添加到input_example
中的测试JSON中,并在后面加上一个布尔值,以便进行测试。在另外,我对Tornado_JSON不太熟悉,但将
"additionalItems"
放在"values"
属性内,似乎不符合模式定义语言。把它提高一级。在更具体地说,我认为你要做的应该是:
输入示例将变成:
^{pr2}$相关问题 更多 >
编程相关推荐