最基本的问题。我有一个多维列表,我是从csv生成的。我有它的运作方式:
data = [['hello', 'world'],['hello','universe']]
for i in data:
try:
cursor.execute("""INSERT INTO MYTABLE (word1,word2) VALUES ('%s','%s')""" % (i[0],i[1]))
cursor.execute("""INSERT random command here""" % ())
conn.commit()
except Exception:
conn.rollback()
这很管用。但是,在尝试提交下一个响应之前,它必须等待响应。一次只执行一个查询需要相当长的时间,所以我希望使用queue/threading,以便一次发送多个这样的查询(10个左右),同时它要处理几百个这样的查询列表。在
我读过几本关于队列和多线程的教程,但是我不知道如何处理列表中的特定项(甚至不知道队列和多线程是如何工作的)。我尝试了以下方法(以及一些其他变体),但无法理解如何使用这种方法来处理我的价值观:
^{pr2}$我不确定如何处理“stuff”函数内数组中的其他项,因此,我一直在猜测。我对队列/线程的理解一般,但是我发现google上的所有教程都是一维数组。如果你有任何见解,我会很感激的,因为我一直在努力让我的头脑围绕这个问题。谢谢。在
编辑:更新的例子更具体。我有一个唯一的票号列表,它首先查询数据库中没有的票号。那些不在的,会被放入多维列表中。然后我尝试将insert插入到live表中,但是如果其中一个键标识符不匹配,它将抛出一个异常,然后我希望它们回滚并插入到另一个表中
最后,我将所有变量打包到q.put()中,并在函数中拆分它们。我想还有更好的办法,但这是我能想到的最好的办法。我也加入了Blender的建议。希望这能帮助其他人:
相关问题 更多 >
编程相关推荐