Оператор INSERT
имеет неверный синтаксис.Что-то не так в цикле for, о котором вы упомянули.
Вы должны включить в вопрос цикл for.
ВСТАВИТЬ INTO "DUMMY1km" (data) VALUES ([[-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]])
Подробнее о вводе значения массива в руководстве.
Ergo:
matData [i]должен содержать ARRAY[-3000, -3000]
или один из перечисленных вариантов допустимого синтаксиса вместо [[-3000 -3000 -3000 ...
, который недопустим для целочисленного массива.
Psychopg автоматически преобразует массив PostgreSQL вa Python list . При создании INSERT вам необходимо преобразовать список обратно в массив. Я цитирую here :
Python lists are converted into PostgreSQL ARRAYs:
>>> cur.mogrify("SELECT %s;", ([10, 20, 30], ))
'SELECT ARRAY[10, 20, 30];'
Отказ от ответственности: я эксперт по PostgreSQL, а не по Python.Для кого-то, кто знает Python лучше меня, должно быть легко отформатировать строку соответствующим образом.Я нашел приведенную выше цитату в быстром исследовании в Интернете.