gpt4 book ai didi

python - 如何将字典项插入 PostgreSQL 表

转载 作者:行者123 更新时间:2023-11-28 19:11:49 25 4
gpt4 key购买 nike

因此,我已经使用 Psycopg2 将我的 Postgresql 数据库连接到 Python,并且提取了两个特定的列进行更新。第一列我用作 Python 字典中的键,我在第二列上运行了一些函数并将结果用作字典中的值。现在我想要做的是将这些值作为新列添加回 Postgresql 表,但我希望它们与它们在字典中配对的正确键配对。本质上,我想获取字典值并将它们作为新列插入并选择它们所属的 Postgresql 表中的“键”(但是,我不想手动分配它们,因为,好吧,希望有更好的方法).

PostgreSQL 表

     |col1   |col2  |col3   | ... | coln  
row1 | a1 | b1 | c1 | ... | n1
row2 | a2 | b2 | c2 | ... | n2
... | ... | ... | ... | ... | n...
rowm | am | bm | cm | ... | nm

这是我用 Python 制作的字典,其中 f() 是一系列在变量上运行的函数:

{ 
a1 : f(c1),
a2 : f(c2),
... : ...
}

现在我的目标是将值列添加回我的表中,使其与原始键相对应。理想情况下,看起来像这样:

     |col1|col2|col3| ... |newcol| coln  
row1 | a1 | b1 | c1 | ... | f(c1)| n1
row2 | a2 | b2 | c2 | ... | f(c2)| n2
... | ...| ...| ...| ... | ... | n...
rowm | am | bm | cm | ... | f(cm)| nm

我知道我可以将列插入表中,但不确定如何将它与键配对。非常感谢任何帮助!

最佳答案

您需要一个类似于以下内容的 UPDATE 语句:

import psycopg2

con = psycopg2.connect('your connection string')
cur = connection.cursor()
# add newcol
cur.execute('ALTER TABLE your_table ADD COLUMN newcol text;')
con.commit()
for k,v in your_dict.iteritems():
cursor.execute('''UPDATE your_table
SET newcol = (%s)
WHERE col1 = (%s);''',(v,k))
conn.commit()
cur.close()
con.close()

关于python - 如何将字典项插入 PostgreSQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38887025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com