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!