首页 > 解决方案 > YAML 错误 - 预期 <'document start'>,但发现 <'block mapping start'>

问题描述

我正在运行的 Bash 命令应该更新 YAML 文件。

YAML 文件如下:

---
[conf]

users:
  - mitchell

我得到了错误-

ERROR! Syntax Error while loading YAML.
  expected '<document start>', but found '<block mapping start>'

The offending line appears to be:

users:
^ here

我应该怎么办?

非常感谢!

标签: syntaxyamlfilesystemsconfig

解决方案


[conf]YAML 中的流序列由序列开始指示符 ( [)、一项(标量conf)和序列结束指示符 ( ]) 组成。

由于 YAML 文档只能有一个根节点,因此文档在]. 一个 YAML 文件允许您在其中包含多个文档,由---(和可选...)分隔。例如,这将是有效的 YAML:

---
[conf]
---
users:
  - mitchell

由于缺少分隔符,您的 YAML 解析器会抱怨它预期新文档的开头,但在根节点已关闭的当前文档中发现了更多内容。

您很可能希望[conf]成为 INI 文件中的部分的特殊语法。但事实并非如此。要将以下内容放入一个部分,您只需执行以下操作

conf:
  users:
    - mitchell

推荐阅读