我的yaml如下
environments:
qa:
east:
appname:testapp
west:
appname:testapp2
prod:
east:
appname:testapp
west:
appname:testapp2
我想迭代环境并为agiven环境价值选择密钥。
例如: 环境= 'QA' 区域= '东'
现在我想迭代环境并选择qa&下的appname东方值
答案 0 :(得分:1)
你的意思是这样的? (注意,您需要在appname:
之后放置一个空格,否则yaml解析器将appname:testapp
作为字符串,而不是键/值对)
import yaml
config_yaml = """environments:
qa:
east:
appname: testapp
west:
appname: testapp2
prod:
east:
appname: testapp
west:
appname: testapp2"""
config = yaml.load(config_yaml)
def appname(env, area):
return config['environments'][env][area]['appname']
if __name__ == '__main__':
print(appname('qa', 'east'))
正如@zwer所说:你试图做的不是“迭代”它,而是“查找”数据。在python中,config是dict
,它是一个哈希表数据结构。您可以通过密钥直接访问值。而在python的list(= array)中,你需要迭代(=遍历)数据结构才能找到一个项目。