2017-10-10 36 views
0

我有了如下的CSV文件中插入CSV在MySQL:無法使用Python3

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

可有人請點我在正確的方向?

回答

0

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