【发布时间】:2014-06-26 18:37:27
【问题描述】:
我正在尝试使用 python 将 numpy 数组的 2 列作为两个数组插入到 postgresql 表中。
postgresql 表是 DOS: 首要的关键 能量整数[] dos 整数[]
我有一个 numpy 数组,它是 2x1D 数组的二维数组:
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...
我无法弄清楚括号中那个内部“ ”是从哪里来的。
【问题讨论】:
-
from your question,看来你有book。如果你不介意的话,能给我一份pdf副本吗?
标签: python arrays postgresql numpy