Как валидировать список словарей с сладострастным?
Я пытаюсь проверить список словарей с помощью сладострастного и поймать недопустимое значение с его сообщением об ошибке, но, похоже, не поддерживает проверку такого рода вложенных данных. Если да, как мне изменить свои коды, чтобы удовлетворить свои потребности?
Я работаю с python3.7 и voluptuous==0.11.5.
Вот такой код:
from voluptuous import Required, Schema, MultipleInvalid
schema = Schema(
[{Required("a"): {Required("a1"): int}, Required("b"): {Required("b1"): int}}]
)
data_test = [
1,
{"a": {"a1": 1}, "b": {"b1": 2}},
{"a": {"a1": 3}, "b": {"b1": "4"}},
{"a": {"a1": "5"}, "b": {"b1": 6}},
]
try:
data_test = schema(data_test)
print(data_test)
except MultipleInvalid as e:
list_error = [str(m) for m in e.errors]
exc = e.error_message
print(str(list_error))
Результат:
["expected int for dictionary value @ data[2]['b']['b1']"]
Я ожидаю
["expected a dictionary @ data[0]", "expected int for dictionary value @ data[2]['b']['b1']", "expected int for dictionary value @ data[3]['a']['a1']"]
Что-то не так в приведенном выше коде?