Maison  >  Article  >  base de données  >  Comment insérer efficacement une liste de dictionnaires dans une base de données MySQL à l'aide de l'exécution de Python ?

Comment insérer efficacement une liste de dictionnaires dans une base de données MySQL à l'aide de l'exécution de Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 22:25:03742parcourir

How to Efficiently Insert a List of Dictionaries into a MySQL Database Using Python's executemany?

Utilisation d'executemany pour insérer une liste de dictionnaires dans MySQL à partir de Python

En Python, executemany est un outil précieux pour insérer efficacement plusieurs lignes dans une base de données MySQL. Considérez le scénario suivant : Vous disposez d’une liste de dictionnaires nommée itemBank, chaque dictionnaire représentant les données d’une ligne d’une table. Pour insérer ces données dans la table TABLE1, vous utilisez actuellement une méthode laborieuse qui consiste à exécuter des requêtes SQL distinctes pour chaque ligne.

Pour optimiser ce processus, explorons comment utiliserexemany. La première étape consiste à restructurer itemBank en une liste de tuples. Chaque tuple contiendra les valeurs que vous souhaitez insérer dans la base de données, extraites des dictionnaires correspondants.

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

Ensuite, construisez un modèle de requête SQL (q) qui définit les colonnes de la table et les espaces réservés pour les valeurs à être insérés.

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

Enfin, utilisez la méthodeexecutemany pour exécuter la requête avec la liste des tuples (itemBank) comme paramètre.

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

Cette approche réduit considérablement le nombre de Requêtes SQL exécutées, améliorant ainsi l'efficacité du processus d'insertion de données.

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