擅长:python、mysql、java
<p>可以使用递归生成器,如下所示:</p>
<pre><code>import yaml
def find(d, tag):
if tag in d:
yield d[tag]
for k, v in d.items():
if isinstance(v, dict):
for i in find(v, tag):
yield i
stream = open('clusters.yml', 'r')
data = yaml.load(stream)
for val in find(data, 'tag_cl'):
print val
</code></pre>
<p>这将返回与与指定标记匹配的所有键相关联的值,而不考虑嵌套深度(在合理范围内)。</p>