使用Psycopg2插入Python嵌套字典

0 人关注

我想在postgredb中插入嵌套的字典结构。我的字典是这样的。

dict = {'x': {'2022-02-09': 0.8},'y':{'2022-02-14': 0.9},'z':{'2022-01-14': 0.4}}

我想像这样插入到表中。

a       b     c
x 2022-02-09 0.8
y 2022-02-14 0.9
z 2022-01-14 0.4

我的代码如下。

conn = pg.connect("dbname=foo user=foo_user")
cursor = conn.cursor()
for name , date in dict.items():
cursor.execute(
     INSERT INTO "sometable" ("a","b","c")
              VALUES (%s,%s,%s)
    """, (name, date.keys(),date.values())
)conn.commit()
cursor.close()
conn.close()

当我运行代码时,我得到psycopg2.ProgrammingError:不能适应类型'dict_values'

使用pyscopg2适配器将dict值导入postgre,可能有什么解决办法?

python
database
postgresql
data-science
Utku Can
Utku Can
发布于 2022-03-09
1 个回答
Mehmet Gençol
Mehmet Gençol
发布于 2022-03-09
已采纳
0 人赞同

我明白你的方法,但你搞错了。当你得到 date.keys 时,你会得到 ['2022-02-09', '2022-02-14', '2022-01-14'] 。然而你需要一个一个地执行它们。

因此,这里是你应该有的样子

for name , date_info in dict.items():
    for date, value in date_info.items():