在python 3+中,我想從字典(或pandas數據框)中插入數據到數據庫中。我選擇了使用postgres數據庫的psycopg2。Psycopg2在postgres數據庫中插入python字典
問題是我找不到正確的方法來做到這一點。我可以輕鬆地連接要執行的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
什麼是插入一個字典與列名匹配的表的最phytonic方法是什麼?
優點/缺點與所提供的SQL?第二種解決方案基本上與提議的解決方案相同(字符串格式與複合除外)?如果需要,Afaik cur.execute調用cur.mogrify? – Paamand