-1

我试图连接一个动态插入语句(超过 100 个插入),而不是一个接一个地执行,我想将所有语句连接到一个变量中。

下面,一个基本的例子:

insert_ = " insert into table ( field,zone) values ('a','b'); "
insert_b = " insert into table ( field,zone) values ('c','d'); "
insert_c = " insert into table ( field,zone) values ('e','f'); "

list = []
list.append(insert_)
list.append(insert_b)
list.append(insert_c)
print list

电流输出:

[" insert into table ( field,zone) values ('a','b'); ", " insert into table ( field,zone) values ('c','d'); ", " insert into table ( field,zone) values ('e','f'); "]

期望的输出:

insert into table ( field,zone) values ('a','b'); insert into table ( field,zone) values ('c','d');  insert into table ( field,zone) values ('e','f');

谢谢阅读。

4

4 回答 4

7
c = db.cursor()
values_to_insert = [("a","b"),("c","d"),...]
c.execute_many("INSERT INTO table (val1,val2) VALUES (?,?)",values_to_insert  )

这就是 execute_many 的用途...

于 2012-12-06T18:17:03.050 回答
3

简单如"".join(list). 或者根本不使用列表,只使用字符串连接,正如 Hemesh 所说。

另外,请不要将您的列表命名为“列表”。它是python中的一个保留关键字(我自己有时也会陷入这个陷阱,但这是一个非常糟糕的主意)。

于 2012-12-06T18:09:38.210 回答
2

只需连接所有这些,无需使用列表。

insert = insert_ + insert_b + insert_c
于 2012-12-06T18:10:29.850 回答
1

由于join已经提出了简单的添加,这里有另一个完整性选项:

insert = '%s %s %s' % (insert_a, insert_b, insert_c)
于 2012-12-06T18:13:33.227 回答