Недавно я нашел jsonschema, и мне очень понравилось ее использовать, однако недавно я наткнулся на то, что хочу сделать, но просто не смог понять.
Что я хочу сделать, так это проверить, что массив должен содержать элемент, соответствующий схеме, но я не хочу, чтобы проверка не прошла для других элементов, которые будут в списке.
Скажем, у меня есть массив, подобный следующему:
arr = [
{"some object": True},
False,
{"AnotherObj": "a string this time"},
"test"
]
Я хочу иметь возможность сделать что-то вроде «проверить, что arr содержит объект, у которого есть свойство« некоторый объект », которое является логическим, и ошибка, если это не так, но не заботиться о других элементах».
Я не хочу, чтобы он проверял другие элементы в списке. Я просто хочу убедиться, что список содержит элемент, который соответствует схеме хотя бы один раз. Я также не знаю, в каком порядке элементы будут поступать в массив.
Я уже пробовал это со схемой вроде:
{"type": "array",
"items": {
"type": "object",
"properties": {
"tool": {
# A schema here to validate tool
},
"required": ["tool"]
}
}
Проблема в том, что для этого требуется, чтобы каждый элемент в массиве имел свойство «инструмент», а не то, что я действительно хочу.
Любая помощь, которую кто-либо может дать мне в этом, будет высоко оценена! Я был в тупике на этом в течение очень долгого времени без какого-либо продвижения вперед.
Спасибо!