2013-03-07 75 views
0

我正在使用ruby CSV模塊讀取csv文件。Ruby CSV輸入值格式

csv文件中的一個值格式爲XXX_XXXXX,其中X是數字。實際上,我將此值視爲字符串,但CSV模塊正在將這些值作爲XXXXXXXX讀取爲數字,而我不想要這些值。

選項我目前使用

f = CSV.read('file.csv', {:headers => true, :header_converters => :symbol, :converters => :all}) 

有沒有辦法告訴CSV不這樣做呢?

回答

1

F = CSV.read( 'FILE.CSV',{:標題=>真,:header_converters =>:符號)}

漏下:converters => :all; (其中包括)將所有數字字符串轉換爲數字。

+0

謝謝!!那就做到了! – 2013-03-07 23:09:11

0

的:轉換器=>各種原因導致此,請嘗試以下

require "csv" 

CSV.parse(DATA, :col_sep => ",", :headers => true, :converters => :all).each do |row| 
    puts row["numfield"] 
end 
__END__ 
textfield,datetimefield,numfield 
foo,2008-07-01 17:50:55.004688,123_45678 
bar,2008-07-02 17:50:55.004688,234_56789 

# gives 
# 12345678 
# 23456789 

CSV.parse(DATA, :col_sep => ",", :headers => true).each do |row| 
    puts row["numfield"] 
end 

__END__ 
textfield,datetimefield,numfield 
foo,2008-07-01 17:50:55.004688,123_45678 
bar,2008-07-02 17:50:55.004688,234_56789 

# gives 
# 123_45678 
# 234_56789 
+0

謝謝!你是對的。不幸的是,史蒂文拉格之前回答了同樣的答案......所以我選擇了他/她的答案。但是謝謝你! – 2013-03-09 00:50:11

+1

是的,我花了更多時間記錄我的答案,對未來打這個人很有幫助,快樂編碼.. – peter 2013-03-09 01:31:10