Как извлечь значение из хеша - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть проанализированный JSON файл, содержащий Ха sh:

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

Я пытаюсь получить oop и получить все значения электронной почты и записать их в файл CSV .

В данный момент я пытаюсь прочитать письмо и перепробовал несколько вариантов, но это самое близкое, что я получил, но он не читает значение, он просто показывает пустое.

data_hash = JSON.parse(File.read('user.json'))

data_hash.keys.each do |user|
  puts user['email']
end

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Если вам нужны только данные электронной почты, вы можете просто использовать map:

data_hash = JSON.parse(File.read('user.json'))
data_hash.values.map{|x| x[:email]}
1 голос
/ 09 апреля 2020

Метод 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)

Попробуйте просто перебрать ключи и значения ha sh:

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

Или, если вы предпочитаете:

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

Каждый возвращает:

18
18
18
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...