2

我正在尝试读取与此类似的 yaml 文件

SLTs:
      - requests: 600
        concurrency: 50
        targets:
          99%: < 100
          Requests per second: > 500

请注意,键“每秒请求数”中有空格。我已经阅读了 yaml.org 中的 yaml 规范,似乎没问题。

Ruby 1.9.2 带有 2 个 yaml 库 psych 和 syck。心理无法读取此文件

couldn't parse YAML at line 132 column 37 (Psych::SyntaxError)

Syck 能够解析它,但它不能与延迟作业(我系统的另一个组成部分)一起正常工作。

我尝试了 1.9.3 并获得了类似的结果。

可以使用 YAML::ENGINE.yamler = ... 更改 YAML 的引擎,但我宁愿不为每种情况更改引擎,而是使用在两种情况下都能正常工作的库。

我搜索了它,但找不到任何东西,所以我的问题是:存在比 Ruby 标准库中更好的库来处理 YAML 吗?我只需要读取文件。

4

1 回答 1

3

导致问题的不是键中的空格,而是值:> 500>表示折叠样式的标量- 错误是说后面>应该只有注释或换行符。

您需要转义哈希值:

 99%: '< 100'
 Requests per second: '> 500'
于 2012-10-05T04:10:15.763 回答