Ruby:从YAML读取哈希数组

dcv*_*vii 3 ruby arrays hash yaml

我有两个爸爸进入我的YAML文件,但只有一个家庭出来.山姆怎么了?我该怎么办?

## dads.rb
require 'yaml'
require 'pp'

dad=[]

dad[0] = {:name => "Joe", :kids => ["Mary", "John"]}
dad[1] = {:name => "Sam", :kids => ["Sam Jr", "Samantha", "Samizdat"]}

open('dads.yml' , 'w') do |f|
    dad.each do |d|
        f.write YAML::dump(d)
    end
end

family = []
open('dads.yml') do |f|
    family << YAML::load(f.read)
end

pp fams
Run Code Online (Sandbox Code Playgroud)

Nik*_* B. 7

您转储多个YAML文档但只读回一个.相反,您只需转储并读取整个数组:

require 'yaml'

dads = []
dads << {:name => "Joe", :kids => ["Mary", "John"]}
dads << {:name => "Sam", :kids => ["Sam Jr", "Samantha", "Samizdat"]}

open('dads.yml', 'w') { |f| YAML::dump(dads, f) }

family = YAML::load(File.read('dads.yml'))

p family
Run Code Online (Sandbox Code Playgroud)