我无法理解使用python进行yaml解析的特殊行为.我的Yaml文件
- mappings:
xyz:
family: app
image: mine-2-455-1
containerName: image-1
containerPort: 9020
appenv: dev
label: cds-containers
count: 2
Run Code Online (Sandbox Code Playgroud)
码
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
Run Code Online (Sandbox Code Playgroud)
yaml非常大,具有相似的值.问题来自输出,
xyz
mine-2-455-1
('image-1',)
Run Code Online (Sandbox Code Playgroud)
不知何故,它认为我的'containerName'值是一个元组,我无法将其传递给ecs boto,因为它需要字符串而不是元组.想知道为什么会发生这种情况以及如何纠正.
我从safeload切换到加载yaml但这似乎没有任何影响.请任何输入.
小智 5
这一行上的逗号导致它被视为一个元组:
containerName = str(confParser[2]['mappings']['xyz']['containerName']),
Run Code Online (Sandbox Code Playgroud)
修复是删除尾随逗号.