我尝试了5或6个在线YAML解析器,它们都给了我相同的错误组:
ERROR:
mapping values are not allowed here
in "<unicode string>", line 3, column 12:
default: true
^
我也研究了间距,看起来是正确的。 “默认”是距离边缘4个空格,“true”是距离冒号一个空格。
这是我正在尝试编辑的完整文件
groups:
Member
default: true
build: true
prefix: '&b&lMember&f'
permissions:
- shop.use
- shop.destroy
Donator
build: true
inheritance: Member
- Default
prefix: '&d&lDonator&f'
permissions:
-
-
答案 0 :(得分:0)
在 Member
和Donator
之前,问题是(是?)块标题default: true
和build: true
等。
YAML中的多个嵌套要求前面的键在之后有一个冒号。如果没有这个,看起来YAML解析器只会认为密钥在下一行(即default
处结束,因此密钥为Member\n default
)这是一个禁忌并正确触发错误你看。
只需将其更改为
即可groups:
Member: # note the colon here!
default: true
build: true
prefix: '&b&lMember&f'
permissions:
- shop.use
- shop.destroy
等。
在Python中使用PyYAML,上面的代码段被翻译为
>>> yaml.safe_load(open("testfile.yaml")
{'groups': {'Members': {'default': True, 'prefix': '&b&lMember&f', 'build': True, 'permissions': ['shop.use', 'shop.destroy']}}}
YAML的剩余部分也无效。在嵌套过程中对奇怪的- DEFAULT
做一些事情,否则你的YAML将无法被解析,因为inheritance: Member
将有效地结束块。