xds*_*emx 12 ruby csv parsing rake-task
我有一个额外的空格字符串:
First,Last,Email ,Mobile Phone ,Company,Title ,Street,City,State,Zip,Country, Birthday,Gender ,Contact Type
Run Code Online (Sandbox Code Playgroud)
我想解析这一行并删除空格.
我的代码看起来像:
namespace :db do
task :populate_contacts_csv => :environment do
require 'csv'
csv_text = File.read('file_upload_example.csv')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
puts "First Name: #{row['First']} \nLast Name: #{row['Last']} \nEmail: #{row['Email']}"
end
end
end
Run Code Online (Sandbox Code Playgroud)
Mik*_*yth 49
@prices = CSV.parse(IO.read('prices.csv'), :headers=>true,
:header_converters=> lambda {|f| f.strip},
:converters=> lambda {|f| f ? f.strip : nil})
Run Code Online (Sandbox Code Playgroud)
nil测试被添加到行而不是标头转换器,假设标头永远不是nil,而数据可能是,而nil没有strip方法.我真的很惊讶,AFAIK,:strip不是预定义的转换器!
你可以strip
先你的哈希:
csv.each do |unstriped_row|
row = {}
unstriped_row.each{|k, v| row[k.strip] = v.strip}
puts "First Name: #{row['First']} \nLast Name: #{row['Last']} \nEmail: #{row['Email']}"
end
Run Code Online (Sandbox Code Playgroud)
也进行了编辑以去除哈希键