Ruby使用引号读写CSV

Rud*_*vic 3 ruby csv

我想在csv行中读取,更新一个字段然后再用引号输出该行.

Row Example Input => "Joe", "Blow", "joe@blow.com"
Desired Row Example Output => "Joe", "Blow", "xxxx@xxxx.xxx"

My script below outputs => Joe, Blow, xxxx@xxxx.xxx
Run Code Online (Sandbox Code Playgroud)

它丢失了我想保留的双引号.

我尝试过各种各样的选择但到目前为止没有任何快乐......任何提示?

非常感谢!

require 'csv'

CSV.foreach('transactions.csv',
            :quote_char=>'"',
            :col_sep =>",", 
            :headers => true, 
            :header_converters => :symbol ) do |row| 

row[:customer_email] = 'xxxx@xxxx.xxx'

puts row

end
Run Code Online (Sandbox Code Playgroud)

Tim*_*ker 7

除非字段本身包含分隔符或换行符,否则CSV字段中的引号通常是不必要的.但您可以强制CSV文件始终使用引号.为此,您需要设置force_quotes => true:

CSV.foreach('transactions.csv',
            :quote_char=>'"',
            :col_sep =>",", 
            :headers => true, 
            :force_quotes => true,
            :header_converters => :symbol ) do |row| 
Run Code Online (Sandbox Code Playgroud)