MySQLdb executemany使用列表作为输入?
问题描述:
我想用我的计划内的executemany存储20条记录一次,继承人它在文档中说...MySQLdb executemany使用列表作为输入?
c.executemany(
"""INSERT INTO breakfast (name, spam, eggs, sausage, price)
VALUES (%s, %s, %s, %s, %s)""",
[
("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95),
("Not So Much Spam Plate", 3, 2, 0, 3.95),
("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95)
])
不过,我在列表中有我的价值观,而宁可不要做18个以上的版本,在我的列表中使用索引。
这里是我的代码如下...
db = connect_to_db()
cursor = db.cursor()
sql = "INSERT INTO gkey (keyword, date, time, position) VALUES (%s, %s, %s, %s)"
params = [(str(keywords[0]), date, time, position[0])]
cursor.executemany(sql, params)
db.commit()
这工作得很好,并且它会犯的第一个关键字列表,与日期,时间和位置一起,我不希望有重复PARAMS 19次象下面...
db = connect_to_db()
cursor = db.cursor()
sql = "INSERT INTO gkey (keyword, date, time, position) VALUES (%s, %s, %s, %s)"
params = [
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
(str(keywords[0]), date, time, position[0])
]
cursor.executemany(sql, params)
db.commit()
上面的什么,我想避免一个例子(索引需要递增它的工作,我知道!;))
我得到一个错误当我尝试将整个列表作为一个值传递时,我需要一次一个地传递它们,有什么想法?可以执行很多操作,还是应该循环更新一次?但我敢肯定,我尝试过,并有类似的错误?虽然我没有注意到它。
答
params = [(str(keywords[i]), date, time, position[i]) for i in range(20)]
非常感谢!所以你可以在定义一个变量时循环?我认为这将有其他应用程序传递给函数等参数? – jjjjj 2012-04-16 19:32:10
这是一个列表理解http://www.diveintopython.net/native_data_types/mapping_lists.html – vartec 2012-04-16 19:34:59
感谢您的链接 – jjjjj 2012-04-16 19:36:34