如何修复 yaml 文件中的“此上下文中不允许映射值”错误?

Mer*_*ook 25 yaml web-scraping

我浏览过类似的问题,并相信我已经应用了我能够从答案中收集到的所有内容。

我有一个 .yml 文件,据我所知,每个元素的格式都相同。然而根据YamlLint.com

(<unknown>): mapping values are not allowed in this context at line 119 column 16

在这种情况下,第 119 行是包含第二个实例的行,下面的单词“transitions”。我可以告诉每个元素的格式相同。我在这里错过了什么吗?

  landingPage:
    include: false
    transitions:
      -
        condition:location
        nextState:location

  location:
    include:false
    transitions:
      -
        condition:excluded
        nextState:excluded

  excluded:
    include:false
    transitions:
      -
        condition:excluded
        nextState: excluded
      -
        condition:age
        nextState:age

Run Code Online (Sandbox Code Playgroud)

tem*_*ame 23

我自己解决了这个问题,只是意识到我将一行缩进得太远,然后取消缩进。

  • 从另一个文件复制,缩进减少了 1。我讨厌 yaml。 (3认同)

Ant*_*hon 19

您不能拥有多行纯标量,例如您include:false transitions是映射的关键,这就是为什么您在此上下文错误中获得不允许的映射值的原因。

要么您忘记了值指示符 ( :)后必须有一个空格,您打算这样做:

        include: false
        transitions:
Run Code Online (Sandbox Code Playgroud)

或者您需要引用您的多线标量:

        'include:false
        transitions':
Run Code Online (Sandbox Code Playgroud)

或者您需要将该纯标量放在一行上:

        include:false transitions:
Run Code Online (Sandbox Code Playgroud)

请注意,一些库根本不允许纯标量中的值指标,即使它们后面没有空格


cra*_*eem 5

yaml 文件中有几个问题,yaml 文件变得混乱,幸运的是可以使用yaml lint等工具轻松识别它

\n

安装它

\n
npm install -g yaml-lint\n
Run Code Online (Sandbox Code Playgroud)\n

您可以通过以下方式验证

\n
E:\\githubRepos\\prometheus-sql-exporter-usage\\etc>yamllint prometheus.yaml\n\xe2\x88\x9a YAML Lint successful.\n
Run Code Online (Sandbox Code Playgroud)\n