如果遇到无法正常将numpy数组保存到MySQL数据库的问题,那么此文章适合您!原始帖子已发布在我的博客上。我通过pickle模块为自己选择了一个保存方法。有了它,您就可以安全地在MySQL数据库的Blob中保存任意大小的numpy数组。因此,示例代码:import mysql.connector
import pickle
import numpy as np
connection = mysql.connector.connect(host='localhost',
database='database',
user='root',
password='')
cursor = connection.cursor()
query = 'create table test(`column` blob);'
cursor.execute(query)
array = np.array([[1,2,3],[4,5,6]])
query = 'insert into test values(%s);'
db_array = pickle.dumps(array)
cursor.execute(query, [db_array ])
query = 'select * from test;'
cursor.execute(query)
res = cursor.fetchall()
res
pickle.loads(res[0][0])
array([[1, 2, 3],
[4, 5, 6]])
cursor.close()
connection.close()
这样,您可以在Python和MySQL之间绝对无缝地交换多维(和常规)数组的numpy数组。例如,如果您使用OpenCV库中的cv2.imread读取图像,则原理保持不变-因为它实际上是多维数组。我希望这可以帮助某人解决类似的问题!