python - 类型错误:在字符串格式化期间、将数据上传到 Web sql 服务器期间,并非所有参数都被转换,

标签 python mysql python-3.x typeerror pymysql

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 formatexecute 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,))

这是official docs

关于python - 类型错误:在字符串格式化期间、将数据上传到 Web sql 服务器期间,并非所有参数都被转换,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43679070/

相关文章:

python - 如何按照声明的顺序运行 unittest 测试用例

python - 如何在spyder中添加python控制台

python - 我如何复制此 try/except 代码中的所有其他输入?

Python 3.3 远程登录问题

MySQL多次更新错误

php - SQLite2数据库转换

mysql - SQL 返回一组合并的结果

python - google adwords python api - 如何获取广告组出价

python - 如何在Pycharm中使双下划线显示为两个单独的下划线?

Python 提取 mysql 到 csv