2014-09-24 98 views
2

我有这个YAML字符串:YAML.load引发异常:引发RangeError:BIGNUM太大而转换成'长”

--- 
lease: 2014-09-26 05:20:39.616606000 Z 
createtime: 2014-09-20 05:20:39.616606000 Z 
leased_at: 2014-09-23 00:22:37.052173269 +08:00 

我的红宝石版本是很老,但我不能升级,我的版本是:

ruby 1.9.1p376 (2009-12-07 revision 26041) [i686-linux] 

当我尝试使用YAML.load解析上面的字符串:

YAML.load(str) # where str is above string 

我得到了以下错误:

irb(main):028:0> YAML.load(str) 
RangeError: bignum too big to convert into `long' 
    from /build/toolchain/lin32/ruby-1.9.1-p376/lib/ruby/1.9.1/yaml.rb:133:in `utc' 
    from /build/toolchain/lin32/ruby-1.9.1-p376/lib/ruby/1.9.1/yaml.rb:133:in `node_import' 
    from /build/toolchain/lin32/ruby-1.9.1-p376/lib/ruby/1.9.1/yaml.rb:133:in `load' 
    from /build/toolchain/lin32/ruby-1.9.1-p376/lib/ruby/1.9.1/yaml.rb:133:in `load' 
    from (irb):28 

我认为问题是那些时间包含太长的毫秒部分。鉴于我无法升级我的红宝石,我怎样才能成功解析YAML字符串?

回答