我的CSV文件非常糟糕。虽然我最终通过手动编写脚本来处理和重新处理这个特定文件来“解决”了这个问题,但我想知道是否还有其他解决方案。
您有一个CSV文件,所有字段都以|结尾(管道)字符。运行快速检查会显示文件中有53个字段。给你文件的人声称那里只有28个字段。并非所有字段都包含信息。例如,有五个 custom_field_ {num} 字段,可能有也可能没有数据。
你怎么能很好地将它带入数据库?
理想的解决方案(以及我搜索过的高和低的解决方案)就是将它全部扔进没有列名或规格的表中。然后删除任何完全空白的列,然后给它们标题和规格。
答案 0 :(得分:1)
您无法预测错误形成的文件将在何处形成。用户下次向您提供文件时,它可以位于文件的中间位置。
如果您尝试使用某个程序进行猜测,您可能会发现所有数据都向右移动了几行。那会让事情变得怪异。例如,您最终可能会在区号列中显示“姓氏”。
因此,请务必先计划手动检查文件。
编辑: 如果文件很大,就像你说6k +行,我会编写一个程序来检测问题所在,并告诉我的文件提供者他们犯了哪些错误。我不会尝试自动“纠正”不良数据。
答案 1 :(得分:0)
我不确定你的“格式不好”是什么意思。但是如果分隔符是一致的并且行数相同,那么只需使用LOAD DATA INFILE MySQL语句。你可以指定'|'作为字段分隔符。
答案 2 :(得分:0)
我发现MsAccess可以让您按列对齐数据或以可视方式使用分隔符将其分开。从那里你可以直接重新导出或更新到SQL