我使用PyYAML处理YAML文件。
我想知道如何才能正确检查某些键的存在?在下面的示例中,title
键仅适用于list1。我想要正确处理标题值,如果它存在则忽略它。
list1:
title: This is the title
active: True
list2:
active: False
答案 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()
直接查看值。