在Python中使用executemany()将多个字典插入MySQL
从网络上抓取数据并将其插入MySQL数据库时,它是对于优化性能以避免数据库锁定至关重要。提供的代码演示了一种低效方法,该方法涉及对表数据的每一行执行单独的查询。为了解决这个问题,我们将探讨如何利用executemany()方法同时插入多行。
executemany()方法允许您将参数列表插入到准备好的语句中。它有两个参数:SQL 语句和参数列表。 SQL 语句应该有参数的占位符 (%s)。
要在这种情况下使用executemany(),我们首先需要将字典列表转换为每行的值元组。这可以通过如下方式实现:
itemBank = [] for row in rows: itemBank.append(( tempRow2['Item_Name'], tempRow1['Item_Price'], tempRow3['Item_In_Stock'], tempRow4['Item_Max'], getTimeExtra )) #append data
接下来,我们准备带有参数占位符的 SQL 语句:
q = """ insert ignore into TABLE1 ( Item_Name, Item_Price, Item_In_Stock, Item_Max, Observation_Date ) values (%s,%s,%s,%s,%s) """
最后,我们执行executemany() 方法,提供SQL 语句和参数列表:
try: x.executemany(q, itemBank) conn.commit() except: conn.rollback()
这种方法通过对表中的所有行执行单个查询来显着提高性能,避免多个单独查询的开销。
以上是如何使用Python的`executemany()`方法高效地将多个字典插入MySQL数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!