2017-01-09 67 views
0

Я пытаюсь вставить свои данные из .csv в базу данных Mysql, используя скрипт python._mysql_exceptions.OperationalError: (1366, "Неправильное целочисленное значение: '% s' для столбца 'ID' в строке 1")

питон скрипт, который я использовал

import csv 
import MySQLdb 

db = MySQLdb.connect(host='localhost',user='root',passwd='password',db='EfficientBazzar') 
cursor = db.cursor() 

csv_data = csv.reader(file('products.csv')) 
for row in csv_data: 
    cursor.execute('INSERT INTO vendor_price_list(ID,Vendor,productname,productcode,unit,weight,price)' 'VALUES("%s","%s","%s","%s","%s","%s","%s")') 

db.commit() 
cursor.close() 
print "Done" 

ответ

0

Вы забыли вставить строки данных в запросе обновления.

Заменить:

'VALUES("%s","%s","%s","%s","%s","%s","%s")' 

с:

'VALUES("%s","%s","%s","%s","%s","%s","%s")' % tuple(row) 
+0

Спасибо, это сработало –

+0

Рад, что я мог помочь! Пожалуйста, примите ответ; –

0

На самом деле даже лучше, рассмотрим Параметрирование запрос:

cursor.execute('INSERT INTO vendor_price_list(ID,Vendor,productname,productcode,unit,weight,price)' + \ 
       ' VALUES(%s,%s,%s,%s,%s,%s,%s)', row) 

Еще быстрее это основная команда прямо из CSV с MySQL, LOAD DATA INFILE (предполагая, что настройки экземпляра сервера позволяют это):

cursor.execute("LOAD DATA INFILE '/path/to/products.csv'" + \ 
       " INTO TABLE vendor_price_list" + \ 
       " FIELDS TERMINATED BY ',' ENCLOSED BY '\"'" + \ 
       " LINES TERMINATED BY '\n' IGNORE 1 ROWS") 

 Смежные вопросы

  • Нет связанных вопросов^_^