Python insert MySQL _mysql_exceptions.ProgrammingError: (1064,

数据库结构
Field
Type
Null
Key
Default
Extra
+---------------+-------------+------+-----+---------+-------+
Device_Name
varchar(24)
YES
NULL
IP_Address
varchar(24)
YES
NULL
DRAC
varchar(24)
YES
NULL
Support_Group
varchar(24)
YES
NULL
Domain
varchar(24)
YES
NULL
OU
varchar(24)
YES
NULL
IEM
varchar(24)
YES
NULL
OS
varchar(24)
YES
NULL
OS_Version
varchar(24)
YES
NULL
Environment
varchar(24)
YES
NULL
Risk
varchar(24)
YES
NULL
Function
varchar(24)
YES
NULL
App
varchar(24)
YES
NULL
Owner
varchar(24)
YES
NULL
Owner_mail
varchar(24)
YES
NULL
Country
varchar(24)
YES
NULL
City
varchar(24)
YES
NULL
Site
varchar(24)
YES
NULL
Location
varchar(24)
YES
NULL
Category
varchar(24)
YES
NULL
Manufacturer
varchar(24)
YES
NULL
Model
varchar(24)
YES
NULL
Rack
varchar(24)
YES
NULL
Power
varchar(24)
YES
NULL
Serial
varchar(24)
YES
NULL
Warranty
varchar(24)
YES
NULL
Decomm_Comm
varchar(24)
YES
NULL
Project
varchar(24)
YES
NULL
Manager
varchar(24)
YES
NULL
Comm_data
varchar(24)
YES
NULL
代码
!/bin/python
importosimportxlrdimportMySQLdbimportre
DB_HOST='127.0.0.1'DB_USER='root'DB_PASS='Jun06jun'DB_NAME='list'db=MySQLdb.connect(host=DBHOST,user=DBUSER,passwd=DBPASS,db=DBNAME)cursor=db.cursor()
a=[]os.chdir('/home/ran/Desktop')data=xlrd.open_workbook('list.xlsx')table=data.sheets()[0]nrows=table.nrows
foriinrange(nrows):
c=table.row_values(i)
printlen(c)
fori_rowinrange(len(c)):
ifc[i_row]=='':c[i_row]="NULL"
sql="insertintoJLLvalues(%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)%(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19],c[20],c[21],c[22],c[23],c[24],c[25],c[26],c[27],c[28],c[29])"
cursor.execute(sql)
Excel中某一列数据AUCFD317-Joeyx.x.x.xVMWareJoeyLinuxN/AN/ALinuxLinux(MLOS)-RHEL564bitPatch3ProductionNULLePOServerMcAfeeGTIProxyAppliance2.0.0xxxxxServerRoomServer-VirtualVMware,Inc.VMwareVirtualPlatformNULLNULLVmwareN/A-VMNULLNULLNULLNULL
发生的错误mysqlexceptions.ProgrammingError:(1064,"YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'%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'atline1")
墨色风雨
浏览 594回答 2
2回答

不负相思意

错误:sql="insertintoJLLvalues(%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)%(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19],c[20],c[21],c[22],c[23],c[24],c[25],c[26],c[27],c[28],c[29])"正确:sql="insertintoJLLvalues('%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')"%(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19],c[20],c[21],c[22],c[23],c[24],c[25],c[26],c[27],c[28],c[29])参考@displaynone的来个简化版,python的语法糖真多sql="insertintoJILvalues(%s)"%(','.join('"'+str(item)+'"'foriteminc))

呼啦一阵风

因为string被没有正确赋值,顺便贴上简化版。c=[1+iforiinrange(29)]sql="insertintoJLLvalues("+','.join('%s'foriinrange(29))+")"finall=sql%tuple(c)更简单版(为什么要折腾%s呢哈哈):sql="insertintoJLLvalues"+str(tuple(c))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript