INSERT
satsen har ogiltig syntax. Det är något fel i for-slingan du nämner.
Du bör inkludera for-slingan i frågan.
INSERT I "DUMMY1km" (data) VÄRDEN ([[-3000 -3000 -3000 .....
En giltig sats kan se ut så här - förutsatt att din kolumn är av typen integer[]
.
... som du också bör ha med i frågan.
INSERT INTO "DUMMY1km"(data) VALUES ('{-3000, -3000}'::int[])
eller
INSERT INTO "DUMMY1km"(data) VALUES (ARRAY[-3000, -3000]) -- note the "ARRAY"
eller för en 2-dimensionell array (ser lite ut så i felmeddelandet):
INSERT INTO "DUMMY1km"(data) VALUES ('{{-3000, -3000}, {-3000, -3000}}'::int[])
eller
INSERT INTO "DUMMY1km"(data) VALUES (ARRAY[[-3000, -3000],[-3000, -3000]])
Mer om inmatning av matrisvärden i manualen.
Ergo:
matData[i] måste innehålla ARRAY[-3000, -3000]
eller en av de andra listade varianterna av giltig syntax istället för [[-3000 -3000 -3000 ...
vilket inte är giltigt för en heltalsmatris.
Psychopg konverterar automatiskt en PostgreSQL-array till en Python-lista . När du bygger INSERT måste du konvertera listan tillbaka till en array. Jag citerar härifrån:
Python lists are converted into PostgreSQL ARRAYs: >>> cur.mogrify("SELECT %s;", ([10, 20, 30], )) 'SELECT ARRAY[10, 20, 30];'
Ansvarsfriskrivning:Jag är expert på PostgreSQL, inte så mycket med Python. För någon som kan Python bättre än mig borde det vara lätt att formatera strängen därefter. Jag hittade ovanstående citat i en snabb research på webben.