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
如果你愿意,可以使用正则表达式
我有以下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
如果你愿意,可以使用正则表达式