質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

ハッシュ

ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

Q&A

1回答

570閲覧

ruby 複数のハッシュから繰り返し処理で指定したハッシュの値だけ取り出したい

laboumhaein

総合スコア16

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

ハッシュ

ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

0グッド

0クリップ

投稿2021/08/13 09:17

result= {"id"=>7, "name"=>"あかさたな", "number"=>"XY", "category"=>{"id"=>15, "name"=>"グッズ", "sub_id"=>nil, "sub_name"=>nil}, "groups"=>[], "price"=>3480, "stock"=>5} {"id"=>8, "name"=>"はまやらわ", "number"=>"XY", "category"=>{"id"=>16, "name"=>"あああ", "sub_id"=>nil, "sub_name"=>nil}, "groups"=>[], "price"=>980, "stock"=>10}

このような感じで取得したハッシュが「result」の中にあるとします。

ここから「id」「name」「subname」「stock」を繰り返し処理でCSVに抜き出したいです
上記の場合だとCSVファイルを開いたら

csv

17,あかさたな,空白,5 28,はまやらわ,空白,10

といった感じになっていてほしいです。

ruby

1 CSV.open("test.csv", "a") do |file| 2 file << result_list 3 end

csvには上記のコードで格納できると思うのですがeachもしくはmapなどを使ってハッシュの中身をぬくやり方がわからないのでご教授願いたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ハッシュが何であるか知っていればできると思うのですが。

Ruby

1result= 2{"id"=>7, 3 "name"=>"あかさたな", 4 "number"=>"XY", 5 "category"=>{"id"=>15, "name"=>"グッズ", "sub_id"=>nil, "sub_name"=>nil}, 6 "groups"=>[], 7 "price"=>3480, 8 "stock"=>5}

であれば、

Ruby

1file << [result["id"], result["name"], result["category"]["sub_name"], result["stock"]]

でしょうか。nil値を"空白"という文字列にしたいのであればそういう処理が必要です。

あるいは、そうじゃなくて、

Ruby

1result=[ 2{"id"=>7, 3 "name"=>"あかさたな", 4 ~~~ 5 "stock"=>5}, 6{"id"=>8, 7 "name"=>"はまやらわ", 8 ~~~ 9 "stock"=>10} 10]

と、ハッシュの配列であるなら、

Ruby

1result.each do |res| 2 file << [res["id"], res[~~~ 3end

とかでしょうか。

投稿2021/08/13 09:36

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問