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

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

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

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

Q&A

解決済

2回答

5979閲覧

ruby JsonをCSVに変換して、行と列を入れ替えたい

Hello

総合スコア25

Ruby

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

0グッド

1クリップ

投稿2016/12/19 23:00

今、手元にJsonファイルがあり、そのJsonファイルをCSVに変換するコードでエラーが出て困っております。

sample.json

Json

1{ 2"A":1, 3"B":2, 4"C":"ccc", 5"D":"ddd", 6"E":"eee" 7}

ruby

1csv_string = CSV.open('sample.csv','w') do |csv| 2 JSON.parse(File.open("sample.json").read).each do |hash| 3 csv << hash 4 end 5end

出力結果
A,1
B,2
C,ccc
D,ddd
E:eee

下記のように行と列を入れ替えて出力したいのですが、アドバイスをいただけますでしょうか。
A,B,C,D,E
1,2,ccc,ddd,eee

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

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

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

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

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

guest

回答2

0

ベストアンサー

上記jsonの場合でしたら、
下記のように記述するとよいと思います。

Ruby

1require 'csv' 2require 'json' 3 4csv_string = CSV.open('sample.csv','w') do |csv| 5 json = JSON.parse(File.open("sample.json").read) 6 7 csv << json.keys 8 csv << json.values 9end

投稿2016/12/20 00:21

mukkun

総合スコア882

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

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

Hello

2016/12/20 16:30

ありがとうございます。 おかげさまで実現したいことが実現できました。
guest

0

require 'csv' require 'json' CSV.open('sample.csv', 'w') do |csv| JSON.parse(File.open('sample.json').read).to_a.transpose.each do |row| csv << row end end

実行後の samole.csv の内容

$ cat sample.csv A,B,C,D,E 1,2,ccc,ddd,eee

参考情報

... 行列の転置(行と列の入れ換え)を行います ...

投稿2016/12/20 14:46

katoy

総合スコア22322

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問