取得したデータでCSVに書き出そうとするとundefined method `map' for "123-456789" :String (NoMethodError)になってしまいます。
ruby
1require 'csv' 2 3#データの取得 4page.css("table tr td").each do |node| 5 csv_data.push(node.inner_text.strip) 6end 7 8#配列になっているか確認 9p csv_data.instance_of?(Array) 10 11#CSVへ書き出し 12CSV.open("abc.csv","wb") do |csv| 13 csv_data.each do |csvArray| 14 csv << csvArray 15 end 16end
csv_dataは下記のようになっています。
ruby
1["123-456789", "テストデータ", "データテスト"]
他サイトを参考に下記のように実行したところCSVデータは正しく作成されたので、配列の作り方がおかしいのだと思うのですが・・・調べてもよくわかりませんでした。
ruby
1require 'csv' 2 3csv_data = [ 4 [ "商品コード", "商品名", "単価" ], 5 [ "AAA-001", "アップル", "10000円" ], 6 [ "BBB-001", "バナナ", "1200円" ], 7 [ "CCC-001", "ケーキ", "8000円" ], 8] 9 10CSV.open("items.csv","wb") do |csv| 11 csv_data.each do |csvArray| 12 csv << csvArray 13 end 14end
どうぞよろしくお願いいたします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/21 01:18
2018/02/21 02:05