【发布时间】:2016-08-29 09:39:53
【问题描述】:
在 python 3+ 中,我想将字典(或 pandas 数据框)中的值插入数据库。我选择了带有 postgres 数据库的 psycopg2。
问题是我无法找出正确的方法来做到这一点。我可以轻松地连接要执行的 SQL 字符串,但 psycopg2 文档明确警告不要这样做。理想情况下,我想做这样的事情:
cur.execute("INSERT INTO table VALUES (%s);", dict_data)
并希望执行可以找出字典的键与表中的列匹配。这没有用。从 psycopg2 文档的示例中我得到了这种方法
cur.execute("INSERT INTO table (" + ", ".join(dict_data.keys()) + ") VALUES (" + ", ".join(["%s" for pair in dict_data]) + ");", dict_data)
我从中得到了一个
TypeError: 'dict' object does not support indexing
将字典插入具有匹配列名的表中最自然的方法是什么?
【问题讨论】:
标签: postgresql python-3.x dictionary psycopg2