使用 PyYaml 解析可能无效的 YAML

我想用 pyyaml 解析与 puppet 相关的 yaml 配置。不幸的是,由于这部分,pyyaml 似乎无法解析某些 YAML 文件:


base::files:


  /var/log/fpm:

    ensure: 'directory'

    mode: '777'


  /etc/nginx/ssl/cert:

   ensure: 'directory'


  /apps:

   ensure: 'directory'

   owner: user

   group: user


  ['/apps/ecert-public', '/apps/ecert-public/config', '/apps/ecert-public/releases']:

    ensure: 'directory'

    owner: 'user'

    group: 'user'


  ['/apps/site-public', '/apps/site-public/config', '/apps/site-public/releases']:

    ensure: 'directory'

    owner: 'user'

    group: 'user'

问题是具有多个值的映射(在方括号内)。尝试使用 pyyaml 解析此部分时收到以下错误消息:


在“/hieradata/node/wc-de.yaml”第 133 行第 3 列中构建映射时,在“/hieradata/node/wc-de.yaml”第 212 行第 3 列中发现不可哈希键


一些 YAML 验证器说这是有效的 YAML(例如:http : //www.yamllint.com/),但我尝试过的大多数验证器在解析这部分时也有问题。有谁知道我如何用 pyyaml 解决这个问题?不幸的是我不能改变 YAML 本身,所以我需要一个解决方案来解析它是如何的。


BIG阳
浏览 298回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python