将Python Numpy结构保存为MySQL Blob

时间:2015-08-26 16:07:19

标签: python mysql numpy

我的一个程序创建了一个非常大的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,))

虽然这有效但看起来有些不雅,但我无法弄清楚如何将其直接保存到数据库中?

1 个答案:

答案 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中。