Primero, extrae ids
en una lista de tuplas:
ids = list((item['id'],) for item in data['issues'])
# example ids: [('41508',), ('41509',)]
Luego use la función extras.execute_values():
from psycopg2 import extras
query = """
INSERT into Countries (revenue)
VALUES %s;
"""
extras.execute_values(cursor, query, ids)
El segundo argumento de la función executemany(query, vars_list)
debe ser una secuencia mientras data
es un objeto a cuyos elementos no se puede acceder mediante índices enteros.
Debido al rendimiento, la primera función ejecuta una única consulta con varios argumentos, mientras que la segunda ejecuta tantas consultas como argumentos.
Tenga en cuenta que, de forma predeterminada, el tercer argumento de execute_values()
es una lista de tuplas, por lo que extrajimos ids
solo de esta manera.
Si tiene que insertar valores en más de una columna, cada tupla de la lista debe contener todos los valores de una sola fila insertada, por ejemplo:
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)