Проверьте наличие ключа YAML - PullRequest
5 голосов
/ 13 февраля 2012

Я использую PyYAML для работы с файлами YAML. Интересно, как я могу правильно проверить наличие какого-то ключа? В приведенном ниже примере ключ title присутствует только для list1. Я хочу правильно обработать значение заголовка, если оно существует, и игнорировать, если его там нет.

list1:
    title: This is the title
    active: True
list2:
    active: False

Ответы [ 2 ]

13 голосов
/ 13 февраля 2012

Как только вы загрузите этот файл с PyYaml, он будет иметь такую ​​структуру:

{
'list1': {
    'title': "This is the title",
    'active': True,
    },
'list2: {
    'active': False,
    },
}

Вы можете повторить его с:

for k, v in my_yaml.iteritems():
    if 'title' in v:
        # the title is present
    else:
        # it's not.
7 голосов
/ 13 февраля 2012

Если вы используете yaml.load, результатом будет словарь, поэтому вы можете использовать in, чтобы проверить, существует ли ключ:

import yaml

str_ = """
list1:
    title: This is the title
    active: True
list2:
    active: False
"""

dict_ = yaml.load(str_)
print dict_

print "title" in dict_["list1"]   #> True
print "title" in dict_["list2"]   #> False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...