我正在编写一个用于将csv文件插入mysql表的python脚本。我遇到的问题是它只插入一行并在此之后终止。
#!/usr/bin/python
import sys
import csv
import MySQLdb
db = MySQLdb.connect(host="localhost",user="root",passwd="password",db="AM")
cur = db.cursor()
f = open(sys.argv[1],'rt')
try:
reader = csv.reader(f)
headers = next(reader)
for row in reader:
col1 = row[0]
col2 = row[1]
col3 = row[2]
col4 = row[3]
col5 = row[4]
col6 = row[5]
except:
print sys.exc_info()
sql = "Insert ignore into my_table(col1, col2, col3, col4, col5, col6) values ('%s', '%s', '%s', '%s', '%s', '%s');" % (col1, col2, col3, col4, col5, col6)
try:
cur.execute(sql)
db.commit()
except:
db.rollback()
finally:
db.close()
答案 0 :(得分:0)
sql = "Insert ignore into table(a,b,c,d,e,f) values ('%s', '%s', '%c', '%s', '%s', '%s');" % (list1, list2, list3, list4, list5, list6)
你的桌子实际命名为" table&#34 ;?如果是这样,你应该用双引号括起来,如下所示:
sql = "Insert ignore into \"table\"(a,b,c,d,e,f) values ('%s', '%s', '%c', '%s', '%s', '%s');" % (list1, list2, list3, list4, list5, list6)
table是一个SQL关键字。