在 python 3+ 中,我想将字典(或 pandas 数据框)中的值插入到数据库中。我选择了带有 postgres 数据库的 psycopg2。
问题是我想不出正确的方法来做到这一点。我可以很容易地连接一个 SQL 字符串来执行,但是 psycopg2 文档明确警告不要这样做。理想情况下,我想做这样的事情:
cur.execute("INSERT INTO table VALUES (%s);", dict_data)
并希望 execute 能够找出 dict 的键与表中的列相匹配。这没有用。从 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
将字典插入具有匹配列名的表中的最自然方法是什么?
原文由 Paamand 发布,翻译遵循 CC BY-SA 4.0 许可协议
两种解决方案:
输出: