所以我有一个空数组和一个.yml文件。我已设法使用此代码输出该文件的结果
puts YAML.load_file('some_yml_file.yml').inspect
我想知道,我如何提取每个数据并将它们存储到一个空数组中?
是吗
emptyarray = []
YAML.load_file('some_yml_file.yml').inspect do |entry|
emptyarray << entry
end
任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
YAML.load_file
返回与YAML表示的数据结构类型对应的Ruby对象。如果YAML包含序列,YAML.load_file
将返回一个Ruby数组。您无需进一步将数据放入数组中,因为它已经是一个数组:
yaml = <<END
---
- I am
- a YAML
- sequence
END
data = YAML.load(yaml)
puts data.class
# => Array
puts data == ["I am", "a YAML", "sequence"]
# => true
(您会注意到我使用YAML.load
从字符串而不是文件加载数据,但结果与在具有相同内容的文件上使用YAML.load_file
相同。)
如果YAML中的顶级结构不是序列(例如,如果它是一个映射,类似于Ruby哈希),那么你将不得不做额外的工作将它变成一个数组,但我们不能告诉你在没有看到你的YAML的情况下代码会是什么样子。
答案 1 :(得分:0)
使用YAML.load_file('some_yml_file.yml').inspect do |entry|
更改YAML.load_file('some_yml_file.yml').each do |entry|
,它应该按预期工作(假设它不是字符串)。
如果您在YAML文件中发布数据结构的样本以及您希望提取并放入数组的内容,那么这将有所帮助。