Ruby 无法分析%YAML:1.0“;红宝石色
我使用的是Ruby 1.9.3,我有一个YAML文件,它是由另一个程序生成的,我需要解析它。Ruby YAML解析器似乎无法识别Ruby 无法分析%YAML:1.0“;红宝石色,ruby,opencv,yaml,Ruby,Opencv,Yaml,我使用的是Ruby 1.9.3,我有一个YAML文件,它是由另一个程序生成的,我需要解析它。Ruby YAML解析器似乎无法识别%YAML:1.0,这只是YAML版本的一个指示器 这是我的YAML文件: %YAML:1.0 任务名称:“1000022任务es-2013-03-19-12-00-00任务1任务90000任务s1.vtsk” 工人姓名:“1000022_es-2013-03-19-12-00-00_1_90000_s1.vtsk” 左_标签:!!opencv矩阵 行数:8 科尔斯:1
%YAML:1.0
,这只是YAML版本的一个指示器
这是我的YAML文件:
%YAML:1.0
任务名称:“1000022任务es-2013-03-19-12-00-00任务1任务90000任务s1.vtsk”
工人姓名:“1000022_es-2013-03-19-12-00-00_1_90000_s1.vtsk”
左_标签:!!opencv矩阵
行数:8
科尔斯:1
dt:f
数据:[8,6,2,7,8,4,10,4]
右_标签:!!opencv矩阵
行数:8
科尔斯:1
dt:f
数据:[14,6,12,7,7,4,5,1]
左功能:!!opencv矩阵
行数:8
科尔斯:2
dt:f
数据:[4692611,12,2.81733875e+06,12,2.99522725e+06,12.]。,
4.00128050e+06,12,3.84592175e+06,12,2006966,12,。,
4.47367050e+06,12,9.56887875e+05,0.]
右功能:!!opencv矩阵
行数:8
科尔斯:2
dt:f
数据:[4692611,12,2.81733875e+06,12,2.99522725e+06,12.]。,
4.00128050e+06,12,3.84592175e+06,12,2006966,12,。,
4.47367050e+06,12,9.56887875e+05,0.]
当我这样做的时候:
require 'yaml'
Psych.load(File.read('myfile.yaml'))
我得到这个错误:
Psych::SyntaxError: (): couldn't parse YAML at line 0 column 5
Psych::SyntaxError:():无法分析第0行第5列的YAML
如果从文件中删除
%YAML:1.0
,则一切正常 看起来Ruby库没有正确处理这个问题。据我所知,Psych 2.0.0只显式地处理版本1.1的YAML指令(%YAML 1.1
);它在%YAML:1.0
和%YAML 1.2
上失败。(从1.1版开始,从指令语法中删除了冒号。)
这对我来说意味着Psych 2.0.0只与YAML 1.1兼容,但由于文件的其余部分似乎是有效的YAML 1.X,删除不兼容的指令可以避免问题
您的选项似乎是:
您可以
gem安装syck
,然后需要“syck”
。这里有一个例子
require 'syck'
# YAML::ENGINE.yamler = 'syck'
fp=File.open(file)
fp.gets # remove the first line
YAML.load(fp)