我在将 YAML 文件中的文档映射到 adict
并正确映射它们时遇到以下问题。
我有以下 YAML 文件,它代表服务器(db.yml
):
instanceId: i-aaaaaaaa
environment:us-east
serverId:someServer
awsHostname:ip-someip
serverName:somewebsite.com
ipAddr:192.168.0.1
roles:[webserver,php]
我加载了这个 YAML 文件,我可以毫无问题地做到这一点,我想我明白了。
instanceId = getInstanceId()
stream = file('db.yml', 'r')
dict = yaml.load_all(stream)
for key in dict:
if key in dict == "instanceId":
print key, dict[key]
我希望逻辑如下所示:
- 加载 yaml,映射到 dict
- 查看文档中的每个 dict,如果
instanceId
与 设置的匹配getInstanceId()
,则打印出该文档的所有键和值。
如果我从命令行查看地图数据结构,我会得到:
{'instanceId': 'i-aaaaaaaa environment:us-east serverId:someServer awsHostname:ip-someip serverName:someserver ipAddr:192.168.0.1 roles:[webserver,php]'}
我想我可能不正确地为 YAML 文件创建数据结构,并且在匹配 上的内容时dict
,我有点迷失了。
旁注:我无法使用yaml.load()
, 我尝试加载此文件中的所有文档yaml.load_all()
,这似乎可行,但我的主要问题仍然存在。