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 
- \"\" 
","example@sqldat.com","omnomnom" 
2,"Charlie","---  
- 102 Flame Street 
- \"\" 
- \"\" 
","example@sqldat.com","andcheese" 
4,"Doug","---  
- 103 Dark Cave 
- Next to some geo dude 
- So many bats 
","example@sqldat.com","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 
- ____
","example@sqldat.com","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