繁体   English   中英

使用Excel Sheet中的python将数据插入mysql表时出错

[英]Error while inserting data into mysql table using python from excel sheet

这里试图将数据从excel导入到mysql表中,但是却出现如下错误:并非在格式化字符串时转换了所有参数

import xlrd
import MySQLdb,os,os.path,datetime as dt
os.chdir("file path")
filename = raw_input("Enter the file name: ",)
workbook = xlrd.open_workbook(filename)
sheet = workbook.sheet_by_index(0)
date = dt.datetime.today().strftime("%d/%m/%y")
fname = filename
user = 'UMD'
database = MySQLdb.connect (host="localhost", user = "root", passwd = "psswd", db = "MRKT_DATA")
cursor = database.cursor()
for r in range(0, sheet.nrows):
    NAME      = sheet.cell(r,0).value
    EMAIL_ID      = sheet.cell(r,1).value
    ALT_NUMBR      = sheet.cell(r,2).value
    DOB      = sheet.cell(r,3).value
    MOBILE      = sheet.cell(r,4).value
    FUNCTIONAL_AREA      = sheet.cell(r,5).value
    SPECIALIZATION      = sheet.cell(r,6).value
    INDUSTRY      = sheet.cell(r,7).value
    RESUME_TITLE      = sheet.cell(r,8).value
    KEYSKILL      = sheet.cell(r,9).value
    WORK_EXP      = sheet.cell(r,10).value
    CURNT_EMPLYR      = sheet.cell(r,11).value
    PREV_EMPLYR      = sheet.cell(r,12).value
    CURNT_SAL      = sheet.cell(r,13).value
    LEVEL      = sheet.cell(r,14).value
    CURNT_LOC      = sheet.cell(r,15).value
    PREF_LOC      = sheet.cell(r,16).value
    COURSE_PRI_HIGH_EDU      = sheet.cell(r,17).value
    SPLZTN_PRI_HIGH_EDU      = sheet.cell(r,18).value
    INST_PRI_HIGH_EDU      = sheet.cell(r,19).value
    COURSE_SEC_HIGH_EDU      = sheet.cell(r,20).value
    SPLZTN_SEC_HIGH_EDU       = sheet.cell(r,21).value
    INST_SEC_HIGH_EDU       = sheet.cell(r,22).value
    LAST      = sheet.cell(r,23).value
    ACTIVE      = sheet.cell(r,24).value
    DATE      = sheet.cell(r,25).value
    GENDER      = sheet.cell(r,26).value
    AGE      = sheet.cell(r,27).value 
    ADDRESS      = sheet.cell(r,28).value
    RESUME_ID      = sheet.cell(r,29).value
     query =  INSERT INTO DATA (NAME,EMAIL_ID,ALT_NUMBR,DOB,MOBILE,FUNCTIONAL_AREA,SPECIALIZATION,INDUSTRY,RESUME_TITLE,KEYSKILL,WORK_EXP,CURNT_EMPLYR,PREV_EMPLYR,CURNT_SAL,LEVEL,CURNT_LOC,PREF_LOC,COURSE_PRI_HIGH_EDU,SPLZTN_PRI_HIGH_EDU,INST_PRI_HIGH_EDU,COURSE_SEC_HIGH_EDU,SPLZTN_SEC_HIGH_EDU,INST_SEC_HIGH_EDU,LAST,ACTIVE,DATE,GENDER,AGE,ADDRESS,RESUME_ID,MARKET_TYPE,DATE_LOGGED,SOURCE) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s');"
    values = (NAME,EMAIL_ID,ALT_NUMBR,DOB,MOBILE,FUNCTIONAL_AREA,SPECIALIZATION,INDUSTRY,RESUME_TITLE,KEYSKILL,WORK_EXP,CURNT_EMPLYR,PREV_EMPLYR,CURNT_SAL,LEVEL,CURNT_LOC,PREF_LOC,COURSE_PRI_HIGH_EDU,SPLZTN_PRI_HIGH_EDU,INST_PRI_HIGH_EDU,COURSE_SEC_HIGH_EDU,SPLZTN_SEC_HIGH_EDU,INST_SEC_HIGH_EDU,LAST,ACTIVE,DATE,GENDER,AGE,ADDRESS,RESUME_ID,user,date,fname)
Cursor.execute(query, values)
cursor.close()
database.commit()
database.close()
print "no of rows : ", sheet.nrows
print ""
print " Done! "
print ""


Error:
     Traceback (most recent call last):
     File "Excel2Mysql.py", line 60, in <module>
     cursor.execute(query, values)
     File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 159, in execute
     query = query % db.literal(args)
     TypeError: not all arguments converted during string formatting

您有33个要插入的项目,但只有32个要插入的地方。 试试下面的代码。 (我添加了另一个%s

 query =  INSERT INTO DATA (NAME,EMAIL_ID,ALT_NUMBR,DOB,MOBILE,FUNCTIONAL_AREA,SPECIALIZATION,INDUSTRY,RESUME_TITLE,KEYSKILL,WORK_EXP,CURNT_EMPLYR,PREV_EMPLYR,CURNT_SAL,LEVEL,CURNT_LOC,PREF_LOC,COURSE_PRI_HIGH_EDU,SPLZTN_PRI_HIGH_EDU,INST_PRI_HIGH_EDU,COURSE_SEC_HIGH_EDU,SPLZTN_SEC_HIGH_EDU,INST_SEC_HIGH_EDU,LAST,ACTIVE,DATE,GENDER,AGE,ADDRESS,RESUME_ID,MARKET_TYPE,DATE_LOGGED,SOURCE) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s');"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM