2016-11-29 8 views
0

pythonを使用したyamlの構文解析の特殊な動作を理解できません。 私のYAMLファイルPythonを使用したyamlの振る舞い -

- mappings: 
     xyz: 
     family: app 
     image: mine-2-455-1 
     containerName: image-1 
     containerPort: 9020 
     appenv: dev 
     label: cds-containers 
     count: 2 

コード

config = open(confFile) 
    confParser = yaml.load(config) 
    taskFamily = str(confParser[2]['mappings']['xyz']['family']) 
    print taskFamily 
    imageName = str(confParser[2]['mappings']['xyz']['image']) 
    print imageName 
    containerName = str(confParser[2]['mappings']['xyz']['containerName']), 
    print containerName 

YAMLは類似した値とかなり大きいです。問題は、出力に来てどういうわけか

xyz 
mine-2-455-1 
('image-1',) 

、それは私の「containerName」の値がタプルであることを考慮し、私はそれが文字列ではなくタプルを見込んでいるためのECSのbotoにこれを渡すことができません。なぜこれが起こり、どのように修正するのかと思います。

safeloadからyamlの読み込みに切り替えましたが、それは効果がないようです。どんな入力もお願いします。

答えて

5

このライン上のコンマは、タプルとして扱うことが原因となっている。

containerName = str(confParser[2]['mappings']['xyz']['containerName']), 

修正が末尾のコンマを除去することです。

+0

bang!これは全く予想外のことでした。ありがとう –

関連する問題