私は自分のPostgreSQLデータベースをPythonにPsycopg2で接続しました。私は更新するために2つの特定の列を取りました。最初の列はPython辞書のキーとして使用しました。私は2番目の列でいくつかの関数を実行し、その結果を辞書の値として使用しました。今私がしたいのは、これらの値をPostgresqlのテーブルに新しいカラムとして追加することですが、それらを辞書でペアになっている正しいキーとペアにしたいと思います。基本的に、私は辞書の値を取って、それらを新しい列として挿入し、それらが属しているPostgresql表の中のどの「キー」を選びたいと思っています(ただし、手動で割り当てることは望ましくありません。 )。辞書項目をPostgreSQLテーブルに挿入する方法
PostgreSQLの表
|col1 |col2 |col3 | ... | coln
row1 | a1 | b1 | c1 | ... | n1
row2 | a2 | b2 | c2 | ... | n2
... | ... | ... | ... | ... | n...
rowm | am | bm | cm | ... | nm
これは私が変数に走ったf()
は、一連の機能ではPythonで作成された辞書です:
{
a1 : f(c1),
a2 : f(c2),
... : ...
}
今、私の目標は、バック値の列を追加することです私のテーブルにそれが元のキーに対応するように。理想的には、次のようなものを見てください:
|col1|col2|col3| ... |newcol| coln
row1 | a1 | b1 | c1 | ... | f(c1)| n1
row2 | a2 | b2 | c2 | ... | f(c2)| n2
... | ...| ...| ...| ... | ... | n...
rowm | am | bm | cm | ... | f(cm)| nm
私はテーブルに列を挿入することはできますが、キーとペアリングする方法はわかりません。どんな助けでも大歓迎です!
'col1'はdbテーブルの主キーですか? (それはpython dictのキーです) – joop
@joopでは、カラム1にはそれぞれの値のペアが実際に存在するため、col1はデータベースのプライマリキーではありません。レコード番号はカラム番号と基本的には関連していますが、各行を一意に識別することができます(プライマリキーだと思います)。 – dtluther