Python >> Tutoriel Python >  >> Python Tag >> exec()

psycopg2 - Insertion d'une liste de dictionnaires dans la base de données PosgreSQL. Trop d'exécutions ?

Utilisez execute_values() pour insérer des centaines de lignes dans une seule requête.

import psycopg2
from psycopg2.extras import execute_values

# ...

projects = [
{'name': 'project alpha', 'code': 12, 'active': True},
{'name': 'project beta', 'code': 25, 'active': True},
{'name': 'project charlie', 'code': 46, 'active': False}
]

columns = projects[0].keys()
query = "INSERT INTO projects ({}) VALUES %s".format(','.join(columns))

# convert projects values to sequence of seqeences
values = [[value for value in project.values()] for project in projects]

execute_values(cursor, query, values)
conn.commit()