我想使用python从数据库中检索图像,但是我在执行此代码时遇到问题
import mysql.connector
import io
from PIL import Image
connection= mysql.connector.connect(
host ="localhost",
user ="root",
passwd ="pfe_altran",
database = "testes",
)
cursor=connection.cursor()
sql1 = "SELECT * FROM pfe WHERE id = 1 "
cursor.execute(sql1)
data2 = cursor.fetchall()
file_like2 = io.BytesIO(data2[0][0])
img1=Image.open(file_like2)
img1.show()
cursor.close()
connection.close()
我有这个错误:
file_like2 = io.BytesIO(data2 [0] [0])TypeError:类似字节的对象 是必需的,而不是'int'
答案 0 :(得分:0)
cursor.fetchall()
将行列表返回到您的变量,因此您需要使用循环程序来处理它
for row in data2:
file_like2 = io.BytesIO(row[0]) #assumming row[0] contains the byte form of your image
如果知道查询仅返回一行,或者知道只需要一行,则可以使用cursor.fetchmany(size=1)
或cursor.fetchone()
,这样您就可以直接对其进行操作而不使用循环。