预期的块结束YAML错误

ama*_*207 23 yaml

将此YAML文件粘贴到在线yaml解析器时,我得到了预期的块结束错误:

ADDATTEMPTING: 'Tentative d ajout '
ATTEMPTINGTOGIVE: 'Tenter de donner '
ATTEMPTINGTOSET1: 'Tentative de définition '
ATTEMPTINGTOSET2: ' avec '
ALREADYEXISTS: 'Erreur. Package existe déjà’
CANCEL1: 'Annulation...'
(...)
Run Code Online (Sandbox Code Playgroud)

错误

ERROR:

while parsing a block mapping
  in "<unicode string>", line 1, column 1:
    ADDATTEMPTING: 'Tentative d ajout '
    ^
expected <block end>, but found '<scalar>'
  in "<unicode string>", line 6, column 11:
    CANCEL1: 'Annulation...'
              ^
Run Code Online (Sandbox Code Playgroud)

mat*_*att 22

该生产线开始ALREADYEXISTS使用的收盘报价,应该使用'.下一行(报告错误的位置)的公开引用被视为结束报价,这种混淆导致错误.

  • 我有同样的错误,但对我来说这是一个缩进问题(!) (5认同)
  • 我在启动 Storm Nimbus 守护进程时遇到了同样的错误。通过替换 Storm.yaml 文件中的“ --&gt; ”解决了错误。谢谢。 (2认同)

vis*_*era 19

我想让这个答案有意义,所以同样的错误用户可以享受而不会有任何麻烦.

实际上,我得到了同样的错误,但由于不同的原因,在我的情况下,我没有使用任何类型的引用,仍然得到相同的错误,如expected <block end>, but found BlockMappingStart.

我通过修复同一个.yml文件中的Alignment问题解决了这个问题.

如果我们没有管理适当的'tab-space(键盘键)'来维护继承者或祖先那么我们必须分阶段这样的事情.

现在我做得很好.


Jar*_*ber 10

如果您使用四个空格而不是两个空格缩进,也会发生此错误.

例如,以下将抛出错误:

fields:
    - metadata: {}
        name: colName
        nullable: true
Run Code Online (Sandbox Code Playgroud)

而将缩进更改为两个空格会修复它:

fields:
  - metadata: {}
    name: colName
    nullable: true
Run Code Online (Sandbox Code Playgroud)


小智 7

YAML 非常严格地遵循缩进结构。即使一个空格/制表符也会导致上述问题。就我而言,一开始只有一次空间。

因此,请确保在更新 YAML 文件时不会引入额外的空格/制表符


Mic*_*l M 6

使用YAML时,请记住,所有这些都是用于通过层次结构(缩进)定义配置的空间。解析YAML文档时遇到的许多问题仅源于给定YAML文件中某个键值之前的多余空格(或没有足够的空格)。