INSERT
ステートメントの構文が無効です。あなたが言及したforループの中に何か問題があります。
質問にforループを含める必要があります。
INSERT 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"
または2次元配列の場合(エラーメッセージのように見えます):
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 ...
の代わりに有効な構文の他のリストされたバリアントの1つ これは整数配列には無効です。
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をよく知っている人にとっては、それに応じて文字列をフォーマットするのは簡単なはずです。上記の引用は、ウェブ上の簡単な調査で見つかりました。