Cukup mudah untuk membaca file CSV ke dalam array dengan Ruby tetapi saya tidak dapat menemukan dokumentasi yang bagus tentang cara menulis array ke file CSV. Adakah yang bisa memberi tahu saya cara melakukan ini?
Saya menggunakan Ruby 1.9.2 jika itu penting.
Jawaban:
Ke file:
Ke string:
Berikut dokumentasi terkini tentang CSV: http://ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html
sumber
Saya hanya punya satu baris.
Lakukan semua hal di atas dan simpan ke csv, dalam satu baris.
CATATAN:
Untuk mengonversi database rekaman aktif ke csv akan menjadi sesuatu seperti ini saya pikir
Hmm @tamouse, intinya agak membingungkan saya tanpa membaca sumber csv, tetapi secara umum, dengan asumsi setiap hash dalam array Anda memiliki jumlah pasangan k / v yang sama & bahwa kunci selalu sama, dalam urutan yang sama (yaitu jika data Anda terstruktur), ini harus melakukan akta:
Jika data Anda tidak terstruktur, ini jelas tidak akan berfungsi
sumber
inject
sini, Anda benar-benar ingin menggunakannyamap
. Selain itu, Anda tidak perlu meneruskan string kosong kejoin
, karena ini adalah default. Jadi, Anda bisa menyusutkan lebih jauh ke ini:rows.map(&CSV.method(:generate_line).join
CSV.generate(headers: hsh.first&.keys) { |csv| hsh.each { |e| csv << e } }
menghasilkan CSV yang setara.Jika Anda memiliki larik array data:
Kemudian Anda dapat menulis ini ke file dengan yang berikut ini, yang menurut saya jauh lebih sederhana:
sumber
Jika ada yang tertarik, berikut adalah beberapa kalimat (dan catatan tentang hilangnya informasi jenis di CSV):
Catatan: CSV kehilangan semua jenis informasi, Anda dapat menggunakan JSON untuk menyimpan informasi tipe dasar, atau pergi ke verbose (tetapi lebih mudah diedit oleh manusia) YAML untuk menyimpan semua informasi jenis - misalnya, jika Anda memerlukan jenis tanggal, yang akan menjadi string dalam CSV & JSON.
sumber
Membangun jawaban @ boulder_ruby, inilah yang saya cari, dengan asumsi
us_eco
berisi tabel CSV dari intisari saya.Diperbarui intinya di https://gist.github.com/tamouse/4647196
sumber
Berjuang dengan ini sendiri. Ini adalah pendapat saya:
https://gist.github.com/2639448 :
sumber
[ %w(your array), %w(goes here) ]
tidak akan terlihat cantik. github.com/pry/pry/issues/568