2012-02-13 47 views
5

Tôi sử dụng PyYAML để làm việc với các tệp YAML. Tôi tự hỏi làm thế nào tôi có thể kiểm tra sự tồn tại của một số phím? Trong ví dụ bên dưới, phím title chỉ xuất hiện cho danh sách1. Tôi muốn xử lý giá trị tiêu đề đúng nếu nó tồn tại và bỏ qua nếu nó không có ở đó.Kiểm tra sự tồn tại của khóa YAML

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

Trả lời

11

Sau khi bạn tải file này với PyYaml, nó sẽ có một cấu trúc như thế này:

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

Bạn có thể lặp lại nó với:

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

Nếu bạn sử dụng yaml.load, kết quả là từ điển, vì vậy bạn có thể sử dụng in để kiểm tra xem khóa có tồn tại không:

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 
Các vấn đề liên quan