INSERT
pernyataan memiliki sintaks yang tidak valid. Ada yang salah di dalam perulangan for yang Anda sebutkan.
Anda harus menyertakan perulangan for dalam pertanyaan.
MASUKKAN KE "DUMMY1km" (data) NILAI ([[-3000 -3000 -3000 .....
Pernyataan yang valid dapat terlihat seperti ini - dengan asumsi kolom Anda bertipe integer[]
.
... yang juga harus Anda sertakan dalam pertanyaan.
INSERT INTO "DUMMY1km"(data) VALUES ('{-3000, -3000}'::int[])
atau
INSERT INTO "DUMMY1km"(data) VALUES (ARRAY[-3000, -3000]) -- note the "ARRAY"
atau untuk larik 2 dimensi (terlihat sedikit seperti itu di pesan kesalahan.):
INSERT INTO "DUMMY1km"(data) VALUES ('{{-3000, -3000}, {-3000, -3000}}'::int[])
atau
INSERT INTO "DUMMY1km"(data) VALUES (ARRAY[[-3000, -3000],[-3000, -3000]])
Lebih lanjut tentang input nilai array di manual.
Ergo:
matData[i] harus berisi ARRAY[-3000, -3000]
atau salah satu varian sintaks valid lainnya yang terdaftar sebagai ganti [[-3000 -3000 -3000 ...
yang tidak valid untuk array integer.
Psychopg secara otomatis mengonversi array PostgreSQL ke dalam daftar Python . Saat membangun INSERT, Anda perlu mengonversi daftar kembali ke array. Saya kutip dari sini:
Python lists are converted into PostgreSQL ARRAYs: >>> cur.mogrify("SELECT %s;", ([10, 20, 30], )) 'SELECT ARRAY[10, 20, 30];'
Penafian:Saya ahli dengan PostgreSQL, tidak begitu banyak dengan Python. Untuk seseorang yang tahu Python lebih baik dari saya, seharusnya mudah untuk memformat string yang sesuai. Saya menemukan kutipan di atas dalam riset singkat di web.