【问题标题】:Unable to insert CSV in MySQL using Python3无法使用 Python3 在 MySQL 中插入 CSV
【发布时间】:2017-10-10 21:05:21
【问题描述】:

我有一个包含以下几行的 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:字符串格式化期间并非所有参数都转换

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

【问题讨论】:

    标签: python mysql csv


    【解决方案1】:

    您的字符串中有 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);
    """
    

    【讨论】:

      猜你喜欢
      • 2017-06-22
      • 2014-10-24
      • 1970-01-01
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      相关资源
      最近更新 更多