【问题标题】:Mysql collation/type for csv import error Invalid column count in CSV input on line 1362csv导入错误的Mysql排序规则/类型第1362行的CSV输入中的列计数无效
【发布时间】: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_ciutf16。我尝试使用“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

错误消息似乎表明排序规则是问题的根源。我尝试了很多排序规则组合,但没有取得任何进展。谁能指出我如何解决这个问题的正确方向?

【问题讨论】:

    标签: python mysql database csv phpmyadmin


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-21
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 2014-03-21
      • 2021-01-17
      • 2016-01-08
      相关资源
      最近更新 更多