2012-02-13 10 views
5

का अस्तित्व जांचें मैं वाईएएमएल फाइलों के साथ काम करने के लिए PyYAML का उपयोग करता हूं। मुझे आश्चर्य है कि मैं कुछ कुंजी के अस्तित्व की जांच कैसे कर सकता हूं? नीचे दिए गए उदाहरण में title कुंजी केवल सूची 1 के लिए मौजूद है। यदि शीर्षक मौजूद है, तो मैं शीर्षक मान को ठीक से संसाधित करना चाहता हूं, और अगर वहां नहीं है तो उसे अनदेखा करें।वाईएएमएल कुंजी

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 
संबंधित मुद्दे