Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Ruby CSV membaca bidang multiline

Masalah Anda bukan multiline tetapi CSV yang salah format.

Ganti \" dan akhiri spasi setelah akhir baris seperti ini:

require 'csv' 

ml = %q{"id","name","address","email","potato" 
1,"Bob","---  
- 101 Cottage row 
- Lovely Village 
- \"\" 
","[email protected]","omnomnom" 
2,"Charlie","---  
- 102 Flame Street 
- \"\" 
- \"\" 
","[email protected]","andcheese" 
4,"Doug","---  
- 103 Dark Cave 
- Next to some geo dude 
- So many bats 
","[email protected]","usemeltattack"}

ml.gsub!(/\" \n/,"\"\n").gsub!(/\\\"/,"__")

CSV.parse(ml, {:headers=>true}) do |row|
  puts row
end

Ini memberikan:

"id","name","address","email","potato"
1,"Bob","---  
- 101 Cottage row 
- Lovely Village 
- ____
","[email protected]","omnomnom"
etc

Jika Anda tidak memiliki kendali atas program yang mengirimkan CSV, Anda harus membuka file, membaca konten, melakukan penggantian, lalu mengurai CSV. Saya menggunakan __ di sini tetapi Anda dapat menggunakan karakter lain yang tidak bertentangan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah MySQL mendukung tanggal historis (seperti 1200)?

  2. kinerja socket.io satu pancaran per baris basis data

  3. Kunci yang ditentukan terlalu panjang; panjang kunci maksimal adalah 1000 byte

  4. Butuh bantuan untuk mengakses database mysql menggunakan node.js

  5. MySqlConnection.StateChange tidak pernah Mengambil