我在ruby中读取.csv文件时遇到问题。
我为文件获取的文件格式如下:
UTF-8 Unicode text, with CR, LF line terminators
我得到的错误是:
/usr/local/lib/ruby/1.8/csv.rb:607:in `get_row': CSV::IllegalFormatError (CSV::IllegalFormatError)
我尝试将文件转换为
UTF-8 Unicode text, with CRLF, CR line terminators
没有变化。
转换为ASCII会产生相同的结果。
有没有人有这方面的经验并且可以提供解决方案?
编辑: 根据要求提供了csv的样本行
670|FirstDataaset|Uppertreet 5|GB|1000|Blue|98764-6547|0374-453534|HU-0973409745|example@example.de
这不是数据,我通过复制将其粘贴到一个新文件中并将其用于测试文件(不是一个可行的选项作为解决方案,只是为了确认数据不是问题)
答案 0 :(得分:0)
您是否指定了自定义列分隔符string = "670|FirstDataaset|Uppertreet 5|GB|1000|Blue|98764-6547|0374-453534|HU-0973409745|example@example.de"
require 'csv'
p CSV.parse(string, :col_sep => "|")
# => [["670", "FirstDataaset", "Uppertreet 5", "GB", "1000", "Blue", "98764-6547", "0374-453534", "HU-0973409745", "example@example.de"]]
?
function valueFromGetOrPost($parameter)
{
$value = ($getValue = filter_input(INPUT_GET, $parameter))
? $getValue
: filter_input(INPUT_POST, $parameter);
return ($value) ? $value : NULL;
}
答案 1 :(得分:0)
由于您正在尝试打开该文件,因此可以执行此操作
CSV.foreach(file_path,:col_sep => '|') do |row|
# whatever you wanna do
end