【发布时间】:2023-03-20 09:33:01
【问题描述】:
这是我第一次使用pymysql游标执行。 我有两次执行;
第一个是:
sql = 'create table if not exists currency(t integer primary key, prediction real default null, realVal real default null)'
cursor.execute(sql)
这很好用。
第二个是:
data = [(1, 12.5), (2, 10.2)]
sql = 'insert into currency(t, prediction) values(%s, %s) on duplicate key update values prediction=values(prediction)'
cursor.execute(sql, data)
问题出现在这里。 "TypeError: 在字符串格式化期间并非所有参数都被转换"
我不知道为什么会这样。任何人帮助我。 谢谢。
【问题讨论】:
-
我不确定您是如何使用此查询和数据获得此错误的。这应该会引发语法错误,因为“更新值预测”之间的“值”太多了。然后你应该得到另一个错误,因为为
t提供的数据不是整数。 -
感谢您的回复。顺便说一句,我不确定你是什么意思“值 b/w 更新值预测太多”。正如我所提到的,第一个 sql 完全执行并创建了一个表,我在工作台上检查了它。你能分享我正常工作的完整代码吗?
-
我已经添加了一个完整的答案,也许现在可以说清楚了。此外,我昨天不明白您可能想一次插入多个条目。因此,我最后一句整数可能有点混乱,对此感到抱歉。
标签: python sql python-3.x pymysql