如何从哈希中提取值



我有一个解析的JSON文件,其中包含一个Hash:

{
"user1" : {
"about_you" : "jjhj",
"age" : 18,
"email" : 18
},
"user2" : {
"about_you" : "jjhj",
"age" : 18,
"email" : 18
},
"user3" : {
"about_you" : "jjhj",
"age" : 18,
"email" : 18
}
}

我正在尝试循环并获取所有的电子邮件值,并将它们写入CSV文件。

目前我正在尝试阅读电子邮件,并尝试了一些变体,但这是我得到的最接近的,但它没有读取值,只是显示为空白。

data_hash = JSON.parse(File.read('user.json'))
data_hash.keys.each do |user|
puts user['email']
end

keys方法返回一个关键字名称数组;它不返回值。

给定这些输入:

json = '{"user1":{"about_you":"jjhj","age":18,"email":18},"user2":{"about_you":"jjhj","age":18,"email":18},"user3":{"about_you":"jjhj","age":18,"email":18}}'
data_hash = JSON.parse(json)

尝试只迭代散列的键和值:

data_hash.each { |k,v| puts v['email'] }

或者如果你喜欢:

data_hash.each do |k,v|
puts v['email']
end

每次返回:

18
18
18

如果您只需要电子邮件数据,那么您可以使用map:

data_hash = JSON.parse(File.read('user.json'))
data_hash.values.map{|x| x[:email]}

最新更新