在下面的代码中row是一个由200个元素(数字)组成listOfVars的元组,是一个200个字符串的元组,它们是变量名testTable.tupleForm是一个元组列表,每个元组中有200个元素.
以下代码不起作用.它返回语法错误:
for row in tupleForm:
cmd = '''INSERT INTO testTable listOfVars values row'''
cur.execute(cmd)
Run Code Online (Sandbox Code Playgroud)
但是,以下工作正常.有人可以解释原因吗?我发现sqlite非常直观.
for row in tupleForm:
cmd = '''INSERT INTO testTable %s values %s'''%(listOfVars, row)
cur.execute(cmd)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
insert_query = '''INSERT INTO testTable ({0}) VALUES ({1})'''.format(
(','.join(listOfVars)), ','.join('?'*len(listOfVars)))
cur.executemany(insert_query, tupleForm)
Run Code Online (Sandbox Code Playgroud)
请不要对数据库查询使用常规字符串插值.
我们很幸运拥有DB-API,它详细解释了如何满足您的需求.
编辑:
为什么这种方法比第二次尝试更好的几个快速原因:
executemany 接受元组列表作为参数.| 归档时间: |
|
| 查看次数: |
3107 次 |
| 最近记录: |