Maison >base de données >tutoriel mysql >Comment puis-je remplir efficacement les bases de données MySQL avec des listes de dictionnaires à l'aide de la méthodeexecutemany() de Python ?

Comment puis-je remplir efficacement les bases de données MySQL avec des listes de dictionnaires à l'aide de la méthodeexecutemany() de Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-09 19:32:02287parcourir

How can I efficiently populate MySQL databases with lists of dictionaries using Python's executemany() method?

Remplir efficacement les bases de données MySQL avec des listes de dictionnaires à l'aide d'Executemany en Python

L'insertion de grands ensembles de données dans des bases de données MySQL peut souvent conduire à des inefficacités et à des bases de données potentielles blocages. Pour résoudre ce problème lorsque vous travaillez avec des données représentées sous forme de listes de dictionnaires, envisagez d'utiliser la méthodeexecutemany().

Dans le scénario présenté, l'approche originale consiste à insérer manuellement chaque ligne de la table dans la base de données, ce qui peut être fastidieux et sujet aux erreurs. Pour optimiser ce processus, executemany() fournit un moyen pratique d'exécuter plusieurs instructions SQL avec un seul appel de fonction.

Pour utiliser executemany() efficacement, restructurez les données en extrayant les valeurs des dictionnaires et en créant une liste. de tuples. Chaque tuple représente une ligne du tableau, contenant les valeurs correspondantes pour chaque colonne.

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

Ensuite, créez la requête SQL avec des espaces réservés pour les valeurs des paramètres, qui seront remplacées par les valeurs des tuples dans la fonction exécutermany().

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

Enfin, exécutez la fonction exécutermany() avec les données modifiées et la requête SQL.

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

Cette approche améliore considérablement l'efficacité en exécutant plusieurs lignes dans une seule opération, réduisant ainsi la surcharge associée aux insertions de lignes individuelles. De plus, il évite les blocages potentiels de la base de données en répartissant la charge sur moins de transactions.

En utilisantexecutemany() pour insérer des listes de dictionnaires dans les bases de données MySQL, les développeurs peuvent rationaliser leurs processus d'insertion de données, améliorer les performances des bases de données et minimiser les problèmes. risque de blocage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn