我正在尝试使用Python将numpy数组的2列作为两个数组插入到PostgreSQL表中。
PostgreSQL表是DOS: primary_key energy integer[] dos integer[]
我有一个numpy数组,它是一个2x1D数组的2D数组:
finArray = np.array([energy,dos])
我试着使用以下脚本向数据库插入数据,但是插入时一直出现错误。我无法弄清楚如何格式化数组,使其正确格式化为:INSERT INTO dos VALUES(1,'{1,2,3}','{1,2,3}')"
脚本:
import psycopg2
import argparse
import sys
import re
import numpy as np
import os
con = None
try:
con = psycopg2.connect(database='bla', user='bla')
cur = con.cursor()
cur.execute("INSERT INTO dos VALUES(1,'{%s}')", [str(finArray[0:3,0].tolist())[1:-1]])
con.commit()
except psycopg2.DatabaseError, e:
if con:
con.rollback()
print 'Error %s' % e
sys.exit(1)
finally:
if con:
con.close()
我无法弄明白的部分是,我会得到如下错误:
Error syntax error at or near "0.31691105000000003"
LINE 1: INSERT INTO dos VALUES(1,'{'0.31691105000000003, -300.0, -19...
我无法确定括号中那个内部的 ' ' 是从哪里来的。