У меня возникли проблемы с пониманием того, как проверять данные с помощью jsonschema
, что стало известно, когда я начал пытаться проверять значения даты и времени.
Следующий код должен вызвать исключение ValidationError
, но это не так.Это самый короткий пример, который я смог придумать.
def val(data, schema):
try:
jsonschema.validate(data, schema)
except jsonschema.ValidationError as e:
return e.args[0]
result = val('2008-09-0X22:47:31-07:00', {'format': 'date-time'})
print(result)
Результат равен None
для любого строкового значения, хотя
val(42, {'type': 'string', 'format': 'date-time'})
вызывает исключение с "42не имеет типа 'строка' ".Это не происходит, если я опускаю элемент схемы 'type'
, и валидатор снова возвращает None
.
Мне кажется, у меня есть некоторые фундаментальные недоразумения о том, как использовать пакет.