我的程序之一创建了一个非常大的块状数组,我希望将其保存为数据库中的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/

10-12 00:13
查看更多