Extrahera först ids
i en lista med tuplar:
ids = list((item['id'],) for item in data['issues'])
# example ids: [('41508',), ('41509',)]
Använd sedan funktionen extras.execute_values():
from psycopg2 import extras
query = """
INSERT into Countries (revenue)
VALUES %s;
"""
extras.execute_values(cursor, query, ids)
Det andra argumentet för funktionen executemany(query, vars_list)
ska vara en sekvens medan data
är ett objekt vars element inte kan nås av heltalsindex.
På grund av prestanda kör den första funktionen en enda fråga med flera argument, medan den andra kör lika många frågor som argument.
Observera att det tredje argumentet för execute_values()
som standard är en lista över tupler, så vi extraherade ids
bara på det här sättet.
Om du måste infoga värden i mer än en kolumn, bör varje tupel i listan innehålla alla värden för en enstaka infogade rad, till exempel:
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)