python 批处理sql插入 %s 占位符报错

在尝试使用pyodbc通过Python批量插入数据到Access数据库时遇到了编程错误,问题出在查询表达式的占位符上。原始代码使用了('%s')作为占位符,但正确的做法是使用'(?, ?, ?)'。修改后的代码成功避免了语法错误,确保了数据的正常插入。此问题涉及到Python数据库操作和SQL语法规则。
摘要由CSDN通过智能技术生成

语法错误 在查询表达式 ‘%s’ 中。 (-3100) (SQLPrepare)")

通过pyodbc操作access数据库,批量插入数据时占位符报错

 def _write_to_db(self):
        sql = r"insert into tb_top_movie (title, rating, subject) values (%s, %s, %s)"
        if len(self.data) > 0:
            self.cursor.executemany(sql, self.data)
            self.conn.commit()
            # 清空原列表中的数据
            self.data.clear()

报错信息如下

pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Microsoft Access Driver]
 语法错误 在查询表达式 '%s' 中。 (-3100) (SQLPrepare)")

将%s改为?即可

sql = r"insert into tb_top_movie (title, rating, subject) values (?, ?, ?)"
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

left23333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值