检查是否存在YAML密钥

时间:2012-02-13 12:54:16

标签: python yaml

我使用PyYAML处理YAML文件。 我想知道如何才能正确检查某些键的存在?在下面的示例中,title键仅适用于list1。我想要正确处理标题值,如果它存在则忽略它。

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

3 个答案:

答案 0 :(得分:13)

使用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.

答案 1 :(得分:7)

如果您使用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

答案 2 :(得分:1)

旧帖子,但如果它可以帮助其他人 - 在 Python3 中:

if 'title' in my_yaml.key():
        # the title is present
    else:
        # it's not.

您可以使用 my_yaml.items() 代替 iteritems()。您也可以使用 my_yaml.values() 直接查看值。