csvcut
在以逗号分隔的 .csv 文件上运行后:
[root@server files]# csvcut -c title,mpn,overview,techspecs2,image_carousel_elargesrc syn_multi-image.csv > syn_scraped_cut.csv
我收到错误:
CSV 包含的字段长度超过最大长度 131072 个字符。尝试使用 field_size_limit 参数提高最大值,或尝试设置 quoting=csv.QUOTE_NONE。
虽然很大,但我可以肯定地告诉你,我的最长字段只有 65535 个字符长,这比允许的最大长度低了相当安全的距离。
我不知道设置quoting=csv.QUOTE_NONE
指的是什么。我只使用了简单的 csvkit 命令,这就是我所知道的。
阅读类似的主题和答案,例如这里和这里,特别是我无法在 csvkit 的上下文中提取任何类型的解决方案。我一般不擅长编程,并且仅限于使用 csvkit、它的命令和选项。
我该如何修复这个错误?
答案1
这文档的状态csvkit
表明该-z
参数可用于调整FIELD_SIZE_LIMIT
。
所以我建议尝试使用相当高的数字:
csvcut -z 2500000 -c title,mpn,overview,techspecs2,image_carousel_elargesrc syn_multi-image.csv > syn_scraped_cut.csv
答案2
将 CSV 文件转换为 sqlite 数据库时,我遇到了完全相同的错误。该表包含超过一百万条记录。该表也不包含有 65535 条记录的字段。解决方案是编写一个脚本,将一个大表分成每个包含 100,000 条记录的小表,并将它们加载到 sqlite 数据库中。没有再发生错误。