首页  >  文章  >  数据库  >  如何使用Python的`executemany()`方法高效地将多个字典插入MySQL数据库?

如何使用Python的`executemany()`方法高效地将多个字典插入MySQL数据库?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-07 16:30:031014浏览

How Can I Efficiently Insert Multiple Dictionaries into a MySQL Database Using Python's `executemany()` Method?

在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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn