导入CSV到MySQL错误

时间:2016-04-12 22:05:30

标签: python mysql csv

我正在尝试将5列数据从CSV导入MySQL表。 MySQL的第一列是自动增量,CSV的第一列是空白的。以下代码会产生错误。

import csv
import MySQLdb

database = MySQLdb.connect(host='10.200.10.125', user='spaine', passwd='spaine', db='scat')
cursor = database.cursor()


cursor.execute('show tables')
for row in cursor:
    print row

cursor.execute('describe brewpubs')
print "\n info about table brewpubs"

for row in cursor:
    print row

csv_file = 'E:\\Proving Grounds\\MsSQL Connection\\Brewery Data\\Breweries.csv'
csv_data = csv.reader(file(csv_file))


for row in csv_data:
    print row
    cursor.execute('''INSERT INTO brewpubs (PID, name, londd, latdd, desc) VALUES(%s, %s, %s, %s, %s)''', row)


database.commit()  # Make sure data is committed to the database

database.close()

此代码产生以下错误: ProgrammingError:(1064,“你的SQL语法有错误;请查看与你的MySQL服务器版本对应的手册,以便在'desc附近使用正确的语法)VALUES('','Hoppy Brewing',' - 121.429684', '38 .554962','http://www.hoppy。'在第1行“)

2 个答案:

答案 0 :(得分:3)

desc是mysql中的reserved word,你必须用反引号(`)将它括起来用它作为标识符:

... (PID, name, londd, latdd, `desc`)

答案 1 :(得分:0)

如果列是自动增量,则完全从插入中省略它,因为它总是空白的。