我的程序之一创建了一个非常大的块状数组,我希望将其保存为数据库中的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,))
尽管此方法可行,但看起来有些不雅,但我不知道如何将其直接保存到数据库中?
最佳答案
我知道这已经过了一段时间-我能够使用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)
这应该将blob放置在具有某些
cnumpy.core.multiarray
...数据类型的mySchema.myTable中。关于python - 将Python Numpy结构另存为MySQL Blob,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32231547/