如何将numpy数组转换为postgresql列表
发布时间:2020-12-13 15:50:36 所属栏目:百科 来源:网络整理
导读:我试图使用 python将2个numpy数组列插入postgresql表作为两个数组. postgresql表是DOS: 首要的关键 能量整数[] dos整数[] 我有一个numpy数组,是2x1D数组的2d数组: finArray = np.array([energy,dos]) 我试图使用以下脚本插入数据库,我一直在插入错误.我无
我试图使用
python将2个numpy数组列插入postgresql表作为两个数组.
postgresql表是DOS: 我有一个numpy数组,是2x1D数组的2d数组: finArray = np.array([energy,dos]) 我试图使用以下脚本插入数据库,我一直在插入错误.我无法弄清楚如何格式化数组,以便在表单中正确格式化:INSERT INTO dos VALUES(1,'{1,2,3}’,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... 我无法弄清楚支架中内部”的来源. 解决方法
太晚了,但无论如何要把它拿出来.
我今天试图在Redshift中插入一个numpy数组.在尝试了odo,df.to_sql()之后,我终于让它以相当快的速度(~3k行/分钟)工作.我不会谈论我在使用这些工具时遇到的问题,但这里有一些简单的工作原理: cursor = conn.cursor() args_str = b','.join(cursor.mogrify("(%s,%s,...)",x) for x in tuple(map(tuple,np_data))) cursor.execute("insert into table (a,b,...) VALUES "+args_str.decode("utf-8")) cursor.commit() cursor.close() 第二行需要根据数组的尺寸进行一些工作. 您可能也想检查这些答案: > Converting from numpy array to tuple (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |