Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Mary-Kate Olsen
Freigeben: 2024-11-07 16:30:03
Original
952 Leute haben es durchsucht

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
Nach dem Login kopieren

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)           
    """
Nach dem Login kopieren

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()
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!