问题:获取 Perl 的 YAML::Dumper
发出 {key=>"-"}
作为 key: "-"
而不是 key: -
我正在处理来自数据库行的哈希值,使用 SOAP 读取它们并将它们转换为 YAML 以供下一阶段使用。
第一阶段用 Perl 编写,并使用 YAML::Dumper
生成 YAML。不幸的是,对于值为 "-"
的键,将发出裸连字符 sans 任何引号:
$ 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
下一个阶段,即读取上面的内容并对其执行进一步的操作,是在 Ruby 中。原始破折号导致 Ruby 的 YAML 解析器发生 varf:
$ 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>'
我的问题很简单:如何指示 YAML::Dumper
将破折号作为带引号的字符串发出?
谢谢!
最佳答案
我创建了一个 pull request对于 github 上的 YAML::Dumper,希望它能被接受并解决这个问题。
关于ruby - YAML::Dumper 不引用标量字符串 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23895637/