利用Python将元组列表导入Postgres

2024-04-20 13:07:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个元组列表,我想上传到我的数据库。我想用一个查询来实现这一点,这样在解析每个元组时就不必打开连接。在

下面是我的元组列表的一个示例(该列表将相当长): 元组列表=[(u'17',u'1',u'2',u'2'),(u'17',u'2',u'1',u'4')]

我想在postgres中编写一个查询,它将获取这个tuple\u列表,并在一次对db的调用中填充一个名为“Predictions”的表。在

一次通话如下:

insert into 'Predictions' (userid, fixture_no, home_score, away_score) values (17, 1, 2, 2)

我曾经研究过将元组转换为XML文件,但是不知道是否有更好的方法可以在Postgres中使用元组列表来实现这一点?在

如果不是的话,我所生成的XML文件看起来像这样。。。在

^{pr2}$

我的主要目标是一次性将所有预测发送到数据库,而不是多次调用,这会使我的web应用程序运行速度变慢。在

任何想法或建议都是伟大的!在


Tags: 文件数据库示例列表dbpostgresxml元组
1条回答
网友
1楼 · 发布于 2024-04-20 13:07:51

您可以使用postgresql documentation示例部分中描述的多行值语法。这里有一个python截图,它根据您的问题从tuple_列表创建insert语句。在

tuple_list = [(u'17',u'1', u'2', u'2'), (u'17',u'2', u'1', u'4')]
a = ["("+", ".join(a)+")" for a in tuple_list]
sql = "insert into 'Predictions' (userid, fixture_no, home_score, away_score) VALUES %s" % (",".join(a))
print(sql)

# Insert into database (code from memory)
args_str = ','.join(cursor.mogrify("%s", (x, )) for x in tuple_list)
cursor.execute("INSERT INTO 'Predictions' (userid, fixture_no, home_score, away_score) VALUES "+args_str)

输出:

^{pr2}$

相关问题 更多 >