Я использую Tornado_JSON, который основан на jsonschema, и есть проблема с моим определением схемы. Я попытался установить его в онлайн-валидаторе схемы, и проблема, похоже, лежит в "additionalItems": True
. True
с капиталом T
работает на python и приводит к ошибке в онлайн-валидаторе (Schema is invalid JSON.
). С помощью true
онлайн-валидатор счастлив, и пример json проверяется на соответствие схеме, но мой скрипт python больше не запускается (NameError: name 'true' is not defined
). Можно ли это как-то решить?JSON Schema: Input malformed
@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()). Отлично. Спасибо.
Спасибо, bjornsen. Это означало как атрибут схемы для предоставления более чем одного элемента, как описано [здесь] (https://github.com/json-schema/json-schema/wiki/additionalItems-and-items). – toas939
А вот в этом случае проблема заключается в том, что Python пытается создать словарь из {...} после 'input_schema'. Он должен работать, если вы в тройном ключе указываете на определение всей схемы с строчным «истинным». – bjornsen