Si vous rencontrez un problème que vous ne pouvez pas normalement enregistrer un tableau numpy dans une base de données MySQL , alors ce message est pour vous! Le message d'origine a été publié sur mon blog .J'ai choisi une méthode de sauvegarde pour moi via le module pickle . Avec lui, vous pouvez enregistrer en toute sécurité un tableau numpy de n'importe quelle dimension dans le blob de la base de données MySQL.Donc, un exemple de code: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()
De cette façon, vous pouvez échanger des tableaux numpy de tableaux multidimensionnels (et réguliers) entre Python et MySQL de manière absolument transparente. Si vous lisez l'image à l'aide de cv2.imread de la bibliothèque OpenCV, par exemple, le principe reste le même - après tout, il s'agit en fait d'un tableau multidimensionnel.J'espère que cela aide quelqu'un à résoudre un problème similaire!