Как валидировать список словарей с сладострастным?

Я пытаюсь проверить список словарей с помощью сладострастного и поймать недопустимое значение с его сообщением об ошибке, но, похоже, не поддерживает проверку такого рода вложенных данных. Если да, как мне изменить свои коды, чтобы удовлетворить свои потребности?

Я работаю с 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']"]

Что-то не так в приведенном выше коде?

0 ответов

Другие вопросы по тегам