2016-04-12 3 views
1

Я пытаюсь импортировать 5 столбцов данных из таблицы CSV в MySQL. Первый столбец MySQL является автоинкрементным, первый столбец CSV пуст. Следующий код вызывает ошибку.импорт CSV в MySQL ошибка

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 0,554962' , 'http://www.hoppy.' в строке 1")

+0

где вы видите 'файл (csv_file)'? –

ответ

3

убывание находится в MySQL reserved word, вы должны заключить его обратные кавычки (`) в используйте его в качестве идентификатора:

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

Это сделало трюк! Спасибо. – spaine

0

I f столбец является автоматическим приращением, полностью опустите его из вставки, так как он всегда пуст.

+0

Как бы вы опустили его со своей первой колонки? – spaine

+0

Прочтите это руководство [Импортируйте файл CSV в Mysql] (http://www.twotutorial.com/2016/03/how-to-import-csv-file-in-mysql-using.html). Надеюсь, что это поможет вам. – NomanJaved