2017-10-20 60 views
0

基本上我想遍歷yaml文件,但它只打印yaml配置的最後值。python循環yaml配置

代碼:

for application in config['applications']: 

    default_cname = '%s-%s.%s.elasticbeanstalk.com' % (application['cname'], application[‘name’], config['region']) 

    print (default_cname) 

YAML文件:

sqa: 
    region: ap-northeast-1 
    applications: 
    - name: admin 
     cname: wp-kb-web 
     name: web 
     cname: wp-kb 

預期輸出:

wp-kb-web-admin.ap-northeast-1.elasticbeanstalk.com 
wp-kb-web.ap-northeast-1.elasticbeanstalk.com 

回答

0

你錯過了-啓動第二個應用程序定義你的YAML。沒有它,就在你的列表中的一個單一項目,其中最新的屬性將覆蓋第一(一式兩份)的:

import yaml 
yaml.load('''sqa: 
    region: ap-northeast-1 
    applications: 
    - name: admin 
     cname: wp-kb-web 
     name: web 
     cname: wp-kb''' 

{ 'SQA':{ '應用程序':[{ 'CNAME':「WP -kb」, '名稱': '捲筒紙'}], '區': 'AP-東北-1'}}

yaml.load('''sqa: 
    region: ap-northeast-1 
    applications: 
    - name: admin 
     cname: wp-kb-web 
    - name: web 
     cname: wp-kb''' 

{ 'SQA':{ '應用':[ {'cname':'wp-kb-web','name':'admin'}, {'cname':'wp-kb','name':'web'}], 'region':'ap-northeast-1'}}

+0

感謝您的幫助..這節省了我很多時間.. – Raxso