Я работаю над созданием сложной схемы JSON и у меня возникают проблемы с проверкой конструкции "oneOf".
Я создал очень простую схему с использованием "oneOf" и простого файла JSON, чтобы продемонстрировать проблему.
Схема JSON:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"oneOf":[
{"properties": {"test1": {"type": "string"}}},
{"properties": {"test2": {"type": "number"}}}
]
}
Файл JSON:
{
"test2":4
}
Когда я проверяю файл JSON по сравнению со схемой с помощью jsonschema.validate, я ожидаю, что это будетдействительный.Однако я получаю ответ об ошибке:
Traceback (most recent call last):
File "TestValidate.py", line 11, in <module>
jsonschema.validate(instance=file, schema=schema, resolver=resolver)
File "C:\Python36\lib\site-packages\jsonschema\validators.py", line 899, in validate
raise error
jsonschema.exceptions.ValidationError: {'test2': 4} is valid under each of {'properties': {'test2': {'type': 'number'}}}, {'properties': {'test1': {'type': 'string'}}}
Failed validating 'oneOf' in schema:
{'$schema': 'http://json-schema.org/draft-07/schema#',
'oneOf': [{'properties': {'test1': {'type': 'string'}}},
{'properties': {'test2': {'type': 'number'}}}],
'type': 'object'}
On instance:
{'test2': 4}
Я не понимаю, как 'test2': 4 может быть допустимым для "test1": {"type": "string"}.