まず、ids
を抽出します タプルのリストに:
ids = list((item['id'],) for item in data['issues'])
# example ids: [('41508',), ('41509',)]
次に、関数 extras.execute_values()を使用します:
from psycopg2 import extras
query = """
INSERT into Countries (revenue)
VALUES %s;
"""
extras.execute_values(cursor, query, ids)
関数の2番目の引数data
の間は、シーケンスである必要があります 整数インデックスでは要素にアクセスできないオブジェクトです。
パフォーマンスのため、最初の関数は複数の引数を持つ単一のクエリを実行し、2番目の関数は引数と同じ数のクエリを実行します。
デフォルトでは、execute_values()
の3番目の引数に注意してください。 タプルのリストであるため、ids
を抽出しました このように。
複数の列に値を挿入する必要がある場合、リスト内の各タプルには、挿入された1つの行のすべての値が含まれている必要があります(例:
)。values = list((item['id'], item['key']) for item in data['issues'])
query = """
INSERT into Countries (id, revenue)
VALUES %s;
"""
extras.execute_values(cur, query, values)