我想从.csv导入数据并使用Python 2.7.13将其加载到MySQL表中。我没有收到任何错误,但表中没有插入行。我尝试使用硬编码查询并成功插入。
我尝试过的代码,没有插入数据:
import csv
import MySQLdb
mydbh = MySQLdb.connect(host='**', user='**', passwd='**', db='**')
cursor = mydbh.cursor()
csv_data = csv.reader(file('load_1.csv'))
for row in csv_data:
print row
try:
cursor.execute("INSERT INTO `VEG_STARTERS`(`menu_cd`, `cuisene_type`, `cuisine_cd`, `cuisine_name`, `price`, `update_datetime`) VALUES ( %s, %s, %s, %s, %s, now());", row)
mydbh.commit()
except:
print "Unable to insert data"
print "%d rows were inserted" % cursor.rowcount
cursor.close()
输出:
['4 \ tVEG_ST \ tVEG_ST_1 \ tROTI CHIPS \ t100 \ t'] 无法插入数据 ['4 \ tVEG_ST \ tVEG_ST_2 \ tSPICY CHEESY POPS \ t140 \ t'] 无法插入数据 ['4 \ tVEG_ST \ tVEG_ST_3 \ tMINI TACO BOMBS \ t200 \ t'] 无法插入数据 [ '4 \ tVEG_ST \ tVEG_ST_4 \ tCROSTINIS \ T200 \吨'] 无法插入数据 插入了0行
硬编码查询有效:
import csv
import MySQLdb
mydbh = MySQLdb.connect(host='localhost', user='root', passwd='root', db='restuarant')
cursor = mydbh.cursor()
cursor.execute("INSERT INTO VEG_STARTERS(menu_cd, cuisene_type, cuisine_cd, cuisine_name, price, update_datetime) VALUES ( 4, 'VEG_ST', 'VEG_ST_6', 'TEST', 100.15, now())")
mydbh.commit()
print "%d rows were inserted" % cursor.rowcount
cursor.close()
我在网上搜索但我无法找到能解决问题的解决方案。任何建议都非常感谢。感谢。
答案 0 :(得分:0)
您的值与标签分隔(\t
)。尝试:
csv_data = csv.reader(file('load_1.csv'), delimiter='\t')
阅读csv文件时。