【发布时间】:2019-03-01 14:32:18
【问题描述】:
我正在向 PostgreSQL 数据库中插入一个字典列表。该列表将快速增长,dict 值(列)的数量在 30 左右。简化数据:
projects = [
{'name': 'project alpha', 'code': 12, 'active': True},
{'name': 'project beta', 'code': 25, 'active': True},
{'name': 'project charlie', 'code': 46, 'active': False}
]
使用以下代码将数据插入 PostgreSQL 数据库确实有效(如answer),但我担心执行太多查询。
for project in projects:
columns = project.keys()
values = project.values()
query = """INSERT INTO projects (%s) VALUES %s;"""
# print(cursor.mogrify(query, (AsIs(','.join(project.keys())), tuple(project.values()))))
cursor.execute(query, (AsIs(','.join(columns)), tuple(values)))
conn.commit()
有更好的做法吗?非常感谢您的帮助!
【问题讨论】:
-
可以使用copy语句。 stackoverflow.com/questions/2271787/…
标签: python postgresql psycopg2