我的一个程序创建了一个非常大的numpty数组,我希望将其保存为数据库中的Blob,因为访问该数组比返回上一级并创建它要快得多。我可以使用以下命令将.npz文件保存到光盘,将其添加到数据库: -
import numpy as n
n.savez(outfile,**kwargs)
并使用以下命令将此文件保存到数据库: -
myData = open(outfile, 'rb').read()
sql = "INSERT INTO myTable (BlobColumn) VALUES (%s)"
cursor.execute(sql, (myData,))
虽然这有效但看起来有些不雅,但我无法弄清楚如何将其直接保存到数据库中?
答案 0 :(得分:0)
我知道这已经很久了 - 我能够使用pandas pd.to_sql
来做到这一点。假设我有一些numpy数组x
,我想插入blob列。然后,您可以执行以下操作:
row = [x.dumps()]
data = pd.DataFrame(row, columns = ['myBlob'])
data.to_sql(name = "myTable", schema = "mySchema", con = dbConnection, if_exists = "append", index = False)
这应该使用一些cnumpy.core.multiarray
...数据类型将blob放在mySchema.myTable中。