我想制作一个只包含哈希的YAML文件.但是,我不能迭代它.当我尝试加载YAML文件时:
YAML.load_file('yamlFile.yml')
Run Code Online (Sandbox Code Playgroud)
它只返回文件中的第一个哈希值.这是我想要创建的示例文件:
---
:reach_hypo: true
:liquid: true
---
:reach_hypo: true
:liquid: false
---
:reach_hypo: true
:liquid: true
Run Code Online (Sandbox Code Playgroud)
如果我加载上面的文件,我得到:
{reach_hypo: true, liquid: true}
Run Code Online (Sandbox Code Playgroud)
我发现的唯一解决方法是将所有哈希值添加到数组中,然后将其写入YAML文件.是否有更好的方法,例如YAML方法,迭代YAML文件?
您可以使用YAML :: load_stream从单个文件中读取多个文档.例如:
require 'yaml'
array = []
YAML.load_stream(File.read 'test.yml') { |doc| array << doc }
array
#=> [{:reach_hypo=>true, :liquid=>true}, {:reach_hypo=>true, :liquid=>false}, {:reach_hypo=>true, :liquid=>true}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |