2017-04-04 122 views
0

我正在使用一个简单的程序来读取CSV文件,不知何故我注意到当我使用EXCEL创建一个CSV或基于Windows的计算机去库无法读取它即使当我使用cat命令这只能说明我在终端上最后一行,它总是会导致这个错误extraneous " in fieldGolang CSV阅读:无关“现场错误

我研究一定程度上比我发现它在一定程度上关系到托架操作系统。 但我真的想问问如何使之间的回报差异通用csv阅读器,我试着用pandas读取相同的csv,并且读取成功,但我无法使用Go代码实现此功能。enter image description here

也是正确的CSV屏幕截图这里

Csv is working fine

+0

这里回车并不重要。您的csv最后只有一个报价,在第一张图片中可见,而在第二张图片中看不到。 – mkopriva

+0

我纠正错误的快照仍然会抛出错误 –

+0

更改屏幕截图不会更改数据源。你确定CSV确实没有在任何地方包含额外的''' –

回答

1

你的文件清楚地表明,你已经有了在内容的最后一个额外的报价。虽然像pandas这样的程序可能没有问题,但我认为它不是有效的csv所以去确实会返回一个错误。

的有什么不对您的数据

简单的例子:https://play.golang.org/p/KBikSc1nzD

更新:在您的更新和搜索的一点点,我不得不apoligize,回车确实重要,似乎是这里THA罪魁祸首,Go似乎可以处理\r\n窗口变体,但不是\r之一。在这种情况下,您可以将bytes.Reader封装到自定义阅读器中,用\n字节替换\r字节。

下面是一个例子:https://play.golang.org/p/vNjzwAHmtg

请注意,该例子就是这样,例如,它不处理所有可能的情况下,\r可能是一个合法的字节。

+0

感谢您指出错误的快照,但我纠正了快照,这种情况下失败 –

+0

好的,在这种情况下,记录错误'log.Printf(“%#v”,err)'应该告诉你哪行和什么列不受欢迎的报价是,我会尝试相应地更新我的答案。 – mkopriva

+0

是的,没有标准库中的一些标准的回车集。像我想实现一些通用的上传,但我被阻止在这 –