Yaml行为 - 使用python解析

f-z*_*z-N 0 python

我无法理解使用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)

修复是删除尾随逗号.