2017-10-20 90 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