我正在尝试使用python将两列numpy数组作为两个数组插入到postgresql表中。如何将numpy数组转换为postgresql列表
PostgreSQL表是DOS: primary_key 能量整数[] DOS整数[]
我有一个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...
我无法弄清楚内部''是从哪里来的。
[从你的问题(http://stackoverflow.com/questions/26965937/rspec-refactoring -model-issue-from-rails-test-prescriptions-4),看起来你有[书](https://pragprog.com/book/nrtest2/rails-4-test-prescriptions)。如果你不介意,你会给我一个pdf副本吗? –