2016-11-29 3 views
0

Я не могу понять своеобразное поведение анализа yaml с помощью python. Мой файлПоведение Ямла - разбор с python

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

Код YAML

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',) 

Каким-то образом, он считает мое значение «ИмяКонтейнера» быть кортеж и я не могу передать это ЭКС бото, так как он ожидает, струнные и не кортежи. Интересно, почему это происходит и как исправить.

Я переключился с safeload на загрузку yaml, но это, похоже, не имеет никакого эффекта. Любые входы, пожалуйста.

ответ

5

Запятая на этой линии, заставляя его следует рассматривать как кортеж:

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

Исправление заключается в удалении Запятая.

+0

б/у! на цель .. это было совершенно неожиданно. Благодаря тонну –

Смежные вопросы