import pymysql as psl
con6s = psl.connect(host='myhost',database='mydatabase',user='usr',passwd='12345')
c6s = con6s.cursor()
c6s.execute( "INSERT INTO %s (stmp,dat,tm,tc,mc,sd,rp,st,stf,stt) VALUES(?,?,?,?,?,?,?,?,?,?)" % (str(db)), (stmp,dat,tm,tc,mc,sd,rp,st,stf,stt))
con6s.commit()
con6s.close()
File "C:/Users/Bwrl/Desktop/al/Time_wither_server_upload/testdb.py", line 134, in cld_sd (str(db)), (stmp,dat,tm,tc,mc,sd,rp,st,stf,stt))
File "C:\Users\Bwrl\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pymysql\cursors.py", line 164, in execute query = self.mogrify(query, args)
File "C:\Users\Bwrl\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pymysql\cursors.py", line 143, in mogrify query = query % self._escape_args(args, conn)
TypeError: not all arguments converted during string formatting
我多次交叉检查所有这些变量,所有变量的类型都没有问题。
最佳答案
你的 execute
有问题称呼。
您已经混合了 string format
与 execute args
通过使用%
。
您需要替换 %
至,
并移动string format
使用 string.format
输出.
sql_cmd = """INSERT INTO
{} (stmp,dat,tm,tc,mc,sd,rp,st,stf,stt)
VALUES(?,?,?,?,?,?,?,?,?,?)""".format(table_name)
c6s.execute(sql_cmd, (stmp,dat,tm,tc,mc,sd,rp,st,stf,stt))
cursor.execute
的原型(prototype)
cursor.execute(sql, (args,))
关于python - 类型错误:在字符串格式化期间、将数据上传到 Web sql 服务器期间,并非所有参数都被转换,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43679070/