【发布时间】:2015-04-14 22:38:22
【问题描述】:
我正在尝试从 YAML 文件加载单词列表。在文件中有一个条目
- on
Ruby 将其加载为“true”,而不是“on”。类似地,“off”被加载为“false”。对 Psych 代码的快速检查显示“是”和“否”的处理方式相同。
除了在开关周围添加引号之外,我有什么办法可以改变这种行为?
如果我读取文件并解析,而不是 load_file,我就能看到这些值。
# test.yaml
- true
- false
- yes
- no
- on
- off
- y
- n
- Y
- N
我通过解析而不是加载获得了一个 Psych 文档,其中包含转换为原生之前的文本。
YAML.parse_file('test.yaml')
想知道如何正确提取它。
来自文档
“表示阶段是指已组合成 YAML::BaseNode 对象的数据。在此阶段,文档以节点对象树的形式提供。您可以在此级别执行 YPath 查询和转换。(请参阅 YAML: :解析。)"
在编写全面的 YPath 查询以提取数据方面需要帮助。
(PS:这可能看起来有点迂回,但这为我清理了很多数据管理方面的事情)
【问题讨论】:
-
你有编辑
yaml文件的权限吗?