我有一个像下面这样的 test1.yaml 文件 accounts: - name: account1 dockerRegistries: - set1 - set2 - set3 - name: account2 dockerRegistries: - set2 - set4 - set5 - name: account3 dockerRegistries: - set2 - set5 - set4我需要特定名称的 dockerRegistries 值。阅读yaml文件后,我尝试了以下内容: accounts = [] account_name = y['kubernetes']['accounts'] for account in account_name: accounts.append(account['name']) if account['name'] == 'account1': print(y['kubernetes']['accounts'][0]['dockerRegistries']) 上面的代码根据数组 0,1 等给出值。但是我想要 dockerRegistries 根据 if 条件的值。如果我给 if account['name'] == 'account1' 我想要 ["set2", "set4", "set5"]我如何做到这一点?
1 回答

森林海
TA贡献2011条经验 获得超2个赞
您可能希望将 移动if到for循环内部。像这样的东西:
accounts = []
account_name = y['kubernetes']['accounts']
for account in account_name:
accounts.append(account['name'])
if account['name'] == 'account1':
print(account['dockerRegistries'])
根据帐户的数量以及您想用它们做什么,字典可能是一个明智的解决方案:
accounts = {account['name']:account for account in y['kubernetes']['accounts']}
print(accounts['account1']['dockerRegistries'])
添加回答
举报
0/150
提交
取消