YAMLのグチを書きますが,みーはYAMLが読みやすくて好きです.ValidなYAMLを書くのが時々難しいという話です.
以下のようなYAMLを作成しました.
--- 5E212220: type: normal 5E212221: type: hard 5E212222: type: easy
これをparseしたところ,以下のようなエラーが発生しました.
YAML is invalid: duplicated mapping key (4:1) 1 | 2 | 5E212220: 3 | type: normal 4 | 5E212221: -----^ 5 | type: hard 6 | 5E212222:
キーが重複しているというエラーですが,5E212220
などは全て異なる値なので,何が問題なのかさっぱり理解できませんでしたが,以下の説明を読んで分かりました.
Example 10.9. Core Tag Resolution
Floats: [ 0., -0.0, .5, +12e03, -2E+05 ]
YAML Ain’t Markup Language (YAML™) Version 1.2
どうやら,5E212220
はfloatと解釈されるようです.これを防ぐにはダブルクオーテーションで囲って文字列であることを示します.
なお,この現象は2文字目のEが原因なので,EをFに置換した以下のyamlは,キーが文字列と解釈されるので,正しいyamlとなります.
--- 5F212220: type: normal 5F212221: type: hard 5F212222: type: easy