我正在尝试解析上传的 CSV 文件。这是完整的错误消息:
[Worker(host:PC.local pid:69594)] Job ImportJob (id=4) FAILED (3 prior attempts) with CSV::MalformedCSVError: Unquoted fields do not allow \r or \n (line 1).
CSV 文件如下所示:
A1;A2;A3;A4;A5
B1;B2;B3;B4;B5
C1;C2;C3;C4;C5
这就是我循环遍历 CSV 文件中数据的方式:
data = SmarterCSV.process(
file,
{
:col_sep => ';',
:chunk_size => 100,
:remove_empty_values => false,
:remove_empty_hashes => false
}
) do |d|
这里有什么问题?我试图将标题添加到文件中,甚至试图将其删除(上面发布的版本),但在这两种情况下我都会遇到相同的错误。我该如何摆脱它?
最佳答案
假设 CSV 文件是在 Windows 上创建的,行尾为“\r\n”也就不足为奇了。尝试明确地将其作为行分隔符:
:row_sep => "\r"
综合起来:
data = SmarterCSV.process(file,
:col_sep => ';',
:row_sep => "\r",
:chunk_size => 100,
:remove_empty_values => false,
:remove_empty_hashes => false) do |d|
关于ruby-on-rails - 无法解析 CSV 文件 - "CSV::MalformedCSVError: Unquoted fields do not allow\r or\n",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24269544/