在Python 3+中,我想要将字典(或Pandas数据框)中的值插入到数据库中。我选择了使用PostgreSQL数据库的psycopg2。
问题在于我无法找出正确的方法来做到这一点。我可以轻松地连接SQL字符串以执行操作,但是psycopg2文档明确警告不要这样做。理想情况下,我想要像这样做:
什么是将字典插入具有匹配列名的表中最适合使用的Pythonic方式?
问题在于我无法找出正确的方法来做到这一点。我可以轻松地连接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
什么是将字典插入具有匹配列名的表中最适合使用的Pythonic方式?