我遇到了YAML解析器的错误。以这个简单的yaml文件为例:
new account:
- FLEETBOSTON
- 011001742
如果使用这个ruby代码行解析它:
INPUT_DATA = YAML.load_file("test.yml")
然后我回来了:
{"new account"=>["FLEETBOSTON", 2360290]}
我做错了吗?因为我很确定这绝不应该发生。
答案 0 :(得分:7)
应该发生。以0
开头的数字是八进制表示法。除非下一个字符是x
,否则它们是十六进制的。
07 == 7
010 == 8
011 == 9
0x9 == 9
0xA == 10
0xF == 15
0x10 == 16
0x11 == 17
进入irb
,然后输入011001742
。
1.9.2-p290 :001 > 011001742
=> 2360290
PEBKAC。 :)
您的号码是一个号码,因此被视为一个号码。如果你想明确地将它作为字符串,请将其括在引号中,因此YAML不会尝试将其作为数字。
new account:
- FLEETBOSTON
- '011001742'