INSERT
изявлението има невалиден синтаксис. Има нещо нередно вътре в цикъла for, който споменавате.
Трябва да включите цикъла for във въпроса.
ВЪВЕТЕ ВЪВ "DUMMY1km" (данни) СТОЙНОСТИ ([[-3000 -3000 -3000 .....
Валидният израз може да изглежда така - ако приемем, че колоната ви е от тип integer[]
.
... което също трябва да включите във въпроса.
INSERT INTO "DUMMY1km"(data) VALUES ('{-3000, -3000}'::int[])
или
INSERT INTO "DUMMY1km"(data) VALUES (ARRAY[-3000, -3000]) -- note the "ARRAY"
или за двумерен масив (изглежда малко така в съобщението за грешка):
INSERT INTO "DUMMY1km"(data) VALUES ('{{-3000, -3000}, {-3000, -3000}}'::int[])
или
INSERT INTO "DUMMY1km"(data) VALUES (ARRAY[[-3000, -3000],[-3000, -3000]])
Повече за въвеждането на стойности на масива в ръководството.
Ерго:
matData[i] трябва да съдържа ARRAY[-3000, -3000]
или един от другите изброени варианти на валиден синтаксис вместо [[-3000 -3000 -3000 ...
което не е валидно за целочислен масив.
Psychopg автоматично преобразува PostgreSQL масив в списък на Python . Когато създавате INSERT, трябва да конвертирате списъка обратно в масив. Цитирам от тук:
Python lists are converted into PostgreSQL ARRAYs: >>> cur.mogrify("SELECT %s;", ([10, 20, 30], )) 'SELECT ARRAY[10, 20, 30];'
Отказ от отговорност:Аз съм експерт по PostgreSQL, не толкова по Python. За някой, който познава Python по-добре от мен, би трябвало да е лесно да се форматира съответно низа. Намерих горния цитат в бързо проучване в мрежата.