YAML :: Dumper没有引用标量字符串" - "

时间:2014-05-27 17:37:23

标签: ruby perl yaml

问题:让Perl的YAML::Dumper{key=>"-"}而非key: "-"而不是key: -

发出YAML::Dumper

我正在处理来自数据库行的哈希,用SOAP读取它们并将它们转换为YAML以供下一阶段使用。

第一阶段用Perl编写,并使用"-"生成YAML。不幸的是,对于值为$ perl -e 'use YAML;use YAML::Dumper; my $ydumper=YAML::Dumper->new(); print $ydumper->dump({key1=>1,key2=>"-",key3=>3});' --- key1: 1 key2: - key3: 3 的键,裸连字符会被发出 sans 任何引用:

$ ruby -rubygems -ryaml -e 'YAML.load($stdin.read);'  # assume the above piped in
/usr/share/ruby/vendor_ruby/psych.rb:205:in `parse': (<unknown>): block sequence entries are not allowed in this context at line 3 column 7 (Psych::SyntaxError)
    from /usr/share/ruby/vendor_ruby/psych.rb:205:in `parse_stream'
    from /usr/share/ruby/vendor_ruby/psych.rb:153:in `parse'
    from /usr/share/ruby/vendor_ruby/psych.rb:129:in `load'
    from -e:1:in `<main>'

下一个阶段,读取上述内容并对其进行进一步操作,在Ruby中。原始破折号导致Ruby的YAML解析器变为varf:

YAML::Dumper

我的问题很简单:如何指示{{1}}将短划线作为带引号的字符串发出?

谢谢!

1 个答案:

答案 0 :(得分:7)

我在github上为YAML :: Dumper创建了一个pull request,希望能够接受并解决这个问题。