我正在进行一个简单的yaml加载并遇到了一个小问题:
代码:
第一个 YAML 文件:
第二个YAML文件:
我只需要测试组中的值,因此当我尝试从第一个yaml访问数据时,我使用
在第二个例子中,我使用了
我知道一些解决问题的方法,比如用空字符串替换括号,或者使用迭代循环创建一个新对象,但这似乎非常复杂。有没有更好的方法可以得到我想要的结果,而不需要跳过许多障碍并创建更难阅读的代码?
代码:
with open(target, 'r') as stream:
try:
data = (yaml.load(stream))
except Exception as exc:
print (exc)
print(data)
第一个 YAML 文件:
test:
- foo: 1
- bar: 2
test2:
- foo: 1
- bar: 2
第二个YAML文件:
foo: 1
bar: 2
我只需要测试组中的值,因此当我尝试从第一个yaml访问数据时,我使用
print(data['test'])
,它返回以下值:[{'foo': '1'}, {'bar': '2'}]
在第二个例子中,我使用了
print(data)
这一行,然后得到了:{'foo': '1'}, {'bar': '2'}
我知道一些解决问题的方法,比如用空字符串替换括号,或者使用迭代循环创建一个新对象,但这似乎非常复杂。有没有更好的方法可以得到我想要的结果,而不需要跳过许多障碍并创建更难阅读的代码?
!!omap
标签,然后你会得到一个ordereddict
。 - tinita