Python sqlite:使用未指定数量的参数的executemany()
Posted
技术标签:
【中文标题】Python sqlite:使用未指定数量的参数的executemany()【英文标题】:Python sqlite: using executemany() with unspecified number of parameters 【发布时间】:2022-01-21 16:49:03 【问题描述】:我正在将 python3 与 pyodbc 库一起使用。 我正在将远程 MSSQL 数据库中的数据提取到本地 sqlite 文件中。我在两个数据库中都有一个名为“产品”的表,我正在做这样的事情:
prod_list = remote_db.cursor.execute('select * from Products').fetchall()
local_db.cursor.executemany('INSERT INTO Products VALUES(?, ?, ?, ?)', prod_list)
在我有一个包含 50 多个字段的表之前效果很好。我真的必须写'吗?五十次?
【问题讨论】:
【参考方案1】:考虑以prod_list
的长度为条件动态创建准备好的语句:
qmarks = ", ".join('?' for i in prod_list[0])
sql = f"INSERT INTO Products VALUES (qmarks)"
local_db.cursor.executemany(sql, prod_list)
【讨论】:
以上是关于Python sqlite:使用未指定数量的参数的executemany()的主要内容,如果未能解决你的问题,请参考以下文章
Python Sqlite3 executemany 中的绑定数量不正确
模板未显示通过传递参数使用视图函数从 sqlite 获取的数据(为空白)