"Stellaris" 游戏中的 .yml 格式错误

Wrong .yml format in "Stellaris" game

我想解析包含“Stellaris”本地化的 yaml 文件。但是我一直有一个错误

"yaml mapping values are not allowed here"

我用的是pyyaml。 主要问题是游戏中的所有本地化文件都有这样的行:

trait_ruler_immortal:0 "Immortal"

但在 yaml 文档和论坛中我可以看到我们必须在冒号后添加 'space'。我不明白这个“0”符号是什么意思。 有趣的是,该游戏在解析这些文件时没有任何问题。 也许这是特殊的 yaml 格式?

编辑:

更多代码: l_english: crisis.2087.desc_psionic_synth:0 "一小部分" EXTSYNTH_DIVINE_SPARK: "神圣火花" EXTSYNTH_START_AT_3:0“§G此种族的领导者技能等级为 3§!”

根据规范,这是无效的 YAML。很可能是 Stellaris 在将文件提供给 YAML 加载程序之前对其进行了一些预处理。我们只能猜测这里发生了什么。

解析它的最佳镜头可能是将其加载到字符串然后执行

input.replace(":0 ", ": ")

在解析之前。