python yaml 中的密钥未知

python key unknown in yaml

我有以下yaml文件

  name: somehost
  values:
    network_lo: "127.0.0.1"
    network_eth0: "10.10.10.10"
    hardwaremodel: x64
    network_eth1: "192.168.10.10"

我想获取所有网络*键/值并在单个值中打印这些值。 尽管接口可以有不同的名称。所以我不知道接口名称叫什么。 通常我会做这样的事情:

with open(file, 'r') as stream:
facts = yaml.load(stream)

multiple = facts['values']['network*']

# single interface
print facts['values']['network_db_backend']
expected 

# all interfaces
print multiple
expected: 127.0.0.1, 10.10.10.10, 192.168.10.10

我如何遍历 yaml 文件获取所有网络接口并将其中的值打印到单个字符串中?

像这样的东西应该有用

import yaml                                                                                                                            

with open('file.yaml''', 'r') as stream:                                                                                               

    facts = yaml.load(stream)                                                                                                          


    multiple = ', '.join([val for (key,val) in facts['values'].iteritems() if "network" in key])                                       
    # single interface                                                                                                                 
    print facts['values']['network_lo']                                                                                                
    # 127.0.0.1                                                                                                                        

    # all interfaces                                                                                                                   
    print multiple  

你可以替换

"network" in key

如果你愿意,可以使用正则表达式