Maison > base de données > tutoriel mysql > 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
Libérer: 2024-11-07 22:25:03
original
865 Les gens l'ont consulté

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
        ))
Copier après la connexion

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)           
    """
Copier après la connexion

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal