Heim  >  Artikel  >  Datenbank  >  Wie kann ich mithilfe der Python-Methode „executemany()' effizient mehrere Wörterbücher in eine MySQL-Datenbank einfügen?

Wie kann ich mithilfe der Python-Methode „executemany()' effizient mehrere Wörterbücher in eine MySQL-Datenbank einfügen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 16:30:031004Durchsuche

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

Einfügen mehrerer Wörterbücher in MySQL mithilfe vonexecutemany() in Python

Beim Scraping von Daten aus dem Web und dem Einfügen in eine MySQL-Datenbank ist dies der Fall Dies ist von entscheidender Bedeutung, um die Leistung zu optimieren und Datenbankblockaden zu vermeiden. Der bereitgestellte Code zeigt einen ineffizienten Ansatz, der die Ausführung einer separaten Abfrage für jede Zeile mit Tabellendaten beinhaltet. Um dieses Problem zu beheben, werden wir untersuchen, wie Sie die Methode „executemany()“ nutzen können, um mehrere Zeilen gleichzeitig einzufügen.

Mit der Methode „executemany()“ können Sie eine Liste von Parametern in eine vorbereitete Anweisung einfügen. Es benötigt zwei Argumente: die SQL-Anweisung und die Parameterliste. Die SQL-Anweisung sollte Platzhalter (%s) für die Parameter haben.

Umexecutemany() in diesem Szenario verwenden zu können, müssen wir zunächst die Liste der Wörterbücher in ein Tupel von Werten für jede Zeile umwandeln. Dies kann wie folgt erreicht werden:

itemBank = []
for row in rows:
    itemBank.append((
        tempRow2['Item_Name'],
        tempRow1['Item_Price'],
        tempRow3['Item_In_Stock'],
        tempRow4['Item_Max'],
        getTimeExtra
        )) #append data

Als nächstes bereiten wir die SQL-Anweisung mit Platzhaltern für die Parameter vor:

q = """ insert ignore into TABLE1 (
        Item_Name, Item_Price, Item_In_Stock, Item_Max, Observation_Date ) 
        values (%s,%s,%s,%s,%s)           
    """

Schließlich führen wir die Methodeexecutemany() aus und stellen die bereit SQL-Anweisung und die Liste der Parameter:

try:
    x.executemany(q, itemBank)
    conn.commit()
except:
    conn.rollback()

Dieser Ansatz verbessert die Leistung erheblich, indem eine einzige Abfrage für alle Zeilen in der Tabelle ausgeführt wird, wodurch der Overhead mehrerer einzelner Abfragen vermieden wird.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe der Python-Methode „executemany()' effizient mehrere Wörterbücher in eine MySQL-Datenbank einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn