如何使用python从数据库中检索图像

时间:2019-04-16 10:32:18

标签: mysql

我想使用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'

1 个答案:

答案 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(),这样您就可以直接对其进行操作而不使用循环。