我试图连接动态插入语句(超过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');
感谢阅读。
答案 0 :(得分: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的用途......
答案 1 :(得分:3)
简单为"".join(list)
。或者根本不使用列表,只使用字符串连接,正如Hemesh所说。
另外,请不要将您的列表命名为“列表”。它是python中的保留关键字(我有时会陷入这个陷阱,但这是一个非常糟糕的主意)。
答案 2 :(得分:2)
只需连接所有这些,就不需要使用列表。
insert = insert_ + insert_b + insert_c
答案 3 :(得分:1)
由于建议join
和简单添加,这里是完整性的另一个选择:
insert = '%s %s %s' % (insert_a, insert_b, insert_c)