如何在不使用数组的情况下读取 yaml dict 值?

我有一个像下面这样的 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"]

我如何做到这一点?


慕婉清6462132
浏览 158回答 1
1回答

森林海

您可能希望将 移动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'])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python