csv导入错误的Mysql排序规则/类型第1362行的CSV输入中的列计数无效
Posted
技术标签:
【中文标题】csv导入错误的Mysql排序规则/类型第1362行的CSV输入中的列计数无效【英文标题】:Mysql collation/type for csv import error Invalid column count in CSV input on line 1362 【发布时间】:2020-09-09 10:43:08 【问题描述】:我在 csv 中有数据,我正在尝试使用 mysql GUI 以“CSV”格式将其导入数据库。
执行此操作时出现错误:“第 1362 行的 CSV 输入中的列数无效。”
在 CSV 文件中,第 1362 行包含带有重音字符的文本,删除重音后,此错误就会消失。但是,导入包含相同重音字符的其他一些行没有任何错误。
我如何设置我的数据库和 csv 文件
csv 文件是使用 python 的 csv.writer 创建的。使用 GUI 导入数据时,我选择了显示“文件字符集:utf-8”的选项
整个数据库的排序规则是utf8mb4_0900_ai_ci
。有问题字符的列的类型为 Varchar(250),排序规则为 utf8_bin。
我尝试了什么
根据对以下问题的一些答案,我尝试将列和数据库的排序规则更改为utf_unicode_ci
和utf16
。我尝试使用“CSV 加载数据”格式。
Multilingual Datatype in MYSQL
Trouble importing/replacing a table w CSV in phpMyAdmin: Invalid column count in CSV input on line 1
使用 CSV 加载数据时出现以下错误:
#1300 - Invalid utf8mb4 character string: '"Bille na dTeangacha Oifigi'
我会注意到,在文本中,上述字符串后面的字符是一个重音字符,会导致错误。
即使列的排序规则是utf_unicode_ci
,也会出现引用utf8mb4
的相同错误。由此我认为问题在于整个表的排序规则是utf8mb4
。
错误消息似乎表明排序规则是问题的根源。我尝试了很多排序规则组合,但没有取得任何进展。谁能指出我如何解决这个问题的正确方向?
【问题讨论】:
【参考方案1】:我解决了这个问题。问题在于如何创建 csv 文件。我必须指定 python 使用 utf-8 编码保存文件。像这样的:
with open('foobar.csv', 'w', encoding='utf-8') as f:
for row in tempTable:
writer = csv.writer(f)
writer.writerow(row)
【讨论】:
以上是关于csv导入错误的Mysql排序规则/类型第1362行的CSV输入中的列计数无效的主要内容,如果未能解决你的问题,请参考以下文章