python - 无法使用Python3在MySQL中插入CSV

标签 python mysql csv

我有一个包含以下几行的 CSV 文件:

10472;141507 some text.;810, smoe more text;city; 99,0060198416; -99,3360490152;some(a)textène, moretextèse;additional text s * (topl), again again text*;R : No retée;2015-02-03;

我想要实现的是插入由 ; 分隔的值。放入表格中。

import csv
from dbconnect import connection
import codecs

cursor, conn = connection()

sql = """
INSERT INTO mddelcc
  (field1, field2, field3, field4, field5, field6, field7, field8, field9, field10)
VALUES
  (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);
"""

with codecs.open('file.csv', 'rb', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile, delimiter = ';', quoting=csv.QUOTE_NONE)
    for row in reader:
        cursor.execute(sql,row)
conn.commit()
cursor.close()
print("Done")

运行代码时,我收到以下错误:

_mysql_exceptions.ProgrammingError: not all arguments converted during string formatting

有人可以给我指出正确的方向吗?

最佳答案

您的字符串中有 10 个字段,但有 11 个值。

将sql更改为:

sql = """
INSERT INTO mddelcc
  (field1, field2, field3, field4, field5, field6, field7, field8, field9, field10)
VALUES
  (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);
"""

或到此

sql = """
INSERT INTO mddelcc
  (field1, field2, field3, field4, field5, field6, field7, field8, field9, field10,field11)
VALUES
  (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);
"""

关于python - 无法使用Python3在MySQL中插入CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46676020/

相关文章:

python - 从 import 导入到 python 解释器主命名空间

python - coverage.py 和 setup.py 以及 Django 测试

php - 保持表示 (HTML) 和逻辑 (PHP) 分离

mysql - sql 按列存储数据

c# - 如何对使用 dotnet Zip 创建的 zip 文件中包含的文件下订单

linux - 使用我的 awk 脚本从 CSV 文件中恢复信息

javascript - 如何在 Python 中抓取包含动态内容(由 JavaScript 创建)的页面?

python - Tornado 'Hello World' 错误

mysql - 有什么办法可以改变mysql中所有表的列名的大小写

sql - 将 psql 输出保存到 csv 文件