С помощью функции execute_values()
вы можете вставить несколько строк, используя один оператор SQL.Вам необходимо подготовить данные для функции в следующем формате:
[['(-180.0, -90.0)'],
['(-140.0, -70.0)'],
['(-100.0, -50.0)'],
['(-60.0, -30.0)'],
['(-20.0, -10.0)'],
['(20.0, 10.0)'],
['(60.0, 30.0)'],
['(100.0, 50.0)'],
['(140.0, 70.0)'],
['(180.0, 90.0)']]
Код:
from psycopg2.extras import execute_values
# Data example:
east = np.linspace(-180.0,180.0,num=10)
north = np.linspace(-90.0,90.0,num=10)
# get array of pairs [east, north]
coor = np.dstack([east, north])
# convert to array of tuples (east, north) as strings
values = [[str(tuple(i))] for i in coor[0]]
execute_values(cur, 'INSERT INTO foobar VALUES %s', values)
conn.commit()
См. Также этот ответ.