无法在python2.7中的.csv文件中插入数据库中的记录(使用El Capitan)

时间:2017-01-28 14:25:28

标签: python mysql

我想从.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()

我在网上搜索但我无法找到能解决问题的解决方案。任何建议都非常感谢。感谢。

1 个答案:

答案 0 :(得分:0)

您的值与标签分隔(\t)。尝试:

csv_data = csv.reader(file('load_1.csv'), delimiter='\t')

阅读csv文件时。