схема Python, чтобы иметь хотя бы один ключ

1

Я использую библиотеку schema.

Как я могу создать схему для проверки того, содержит ли в словаре какой-либо из ключей и соответствующих им значений?

mydict_schema = Schema({
    Optional('name'): str,
    Optional('name_id'): int,
})

В настоящий момент все клавиши Optional, но я хочу, чтобы их хотя бы один из них.

  • 1
    schema @holdenweb - сторонняя библиотека.
  • 1
    Спасибо - редактирование наиболее полезно
Теги:
validation
schema
dictionary
associative-array

1 ответ

0

Контекст

  • python2
  • проверка с помощью библиотеки схем

Проблема

  • DevSyedK хочет создать ограничение проверки схемы, которое требует, чтобы словарь имел по крайней мере один ключ из набора возможных ключей
  • В настоящее время DevSyedK имеет ограничение ZeroOrMore, но DevSyedK хочет, чтобы это ограничение OneOrMore

Решение

  • Установите два списка, один список со всеми возможными ключами и другой список с фактическими ключами, содержащимися в проверяемых данных.
  • Создайте ограничение схемы, которое возвращает True тогда и только тогда, когда пересечение двух списков не является пустым.

Демо-код

  • Примечание: это не полное решение вопроса, просто доказательство концепции.

    lstkeys_possible  = ['alpha','bravo','charlie']
    lstkeys_actual    = []   ## wont validate
    lstkeys_actual    = ['zulu']  ## wont validate
    lstkeys_actual    = ['alpha']  ## will validate
    Schema( lambda vinput: bool(set(vinput[0]) & set(vinput[1])) ).validate( [lstkeys_possible,lstkeys_actual] )
    

См. также

Ещё вопросы

Сообщество Overcoder
Наверх
Меню