2012-02-13 151 views
5

我使用PyYAML來處理YAML文件。 我不知道如何正確檢查一些密鑰的存在?在下面的示例中,title鍵僅存在於list1中。如果它存在,我想正確處理標題值,並忽略它是否存在。檢查是否存在YAML密鑰

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

回答

11

當你將與PyYaml這個文件,就會有這樣的結構:

for k, v in my_yaml.iteritems(): 
    if 'title' in v: 
     # the title is present 
    else: 
     # it's not. 
6

如果使用yaml.load,結果:

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

你可以重複它是一本字典,所以你可以用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