【发布时间】:2010-10-22 11:04:26
【问题描述】:
在下面的代码中,row 是一个包含 200 个元素(数字)的元组,listOfVars 是一个包含 200 个字符串的元组,这些字符串是 testTable 中的变量名。 tupleForm 是一个元组列表,每个元组有 200 个元素。
以下代码不起作用。它返回一个语法错误:
for row in tupleForm:
cmd = '''INSERT INTO testTable listOfVars values row'''
cur.execute(cmd)
但是,以下工作正常。有人可以解释为什么吗?我发现 sqlite 太不直观了。
for row in tupleForm:
cmd = '''INSERT INTO testTable %s values %s'''%(listOfVars, row)
cur.execute(cmd)
感谢您的帮助。
【问题讨论】:
-
您有一个包含 200 列的表?很可能有更好的数据库设计可供您使用。例如,尝试将您当前拥有的大部分列名放入自己的列中。
-
这不是 SQLite 的错! SQLite 无法知道
listOfVars或row是什么意思... -
尝试在你的
cmd = ...分配之后做一个print(cmd),你会看到2 的不同。这不是一个真正的sqlite 事情,它只是一个Python 字符串格式问题。完成您想做的事情的最佳方法是应用 Adam Bernier 的答案。