Чтение BLOB-файла из MySQL с помощью Python - PullRequest
0 голосов
/ 17 мая 2019

Прежде всего, я новичок в приложениях баз данных. Я пытаюсь получить BLOB-файл из базы данных mySQL; в настоящее время пытаюсь запустить блок кода Python, который я нашел на веб-сайте. Мне удалось успешно загрузить BLOB-файл в базу данных, однако мне не удалось получить загруженный BLOB-файл. Вот код Python.

import mysql.connector
from mysql.connector import Error
from mysql.connector import errorcode

def write_file(data, filename):
    # Convert binary data to proper format and write it on Hard Disk
        with open(filename, 'wb') as file:
            file.write(data)
def readBLOB(emp_id, photo):
        print("Reading BLOB data from python_employee table")
        try:
            connection = mysql.connector.connect(user='***', password='***',
                          host='******',
                          database='*****')
            cursor = connection.cursor(prepared=True)
            sql_fetch_blob_query = """SELECT * from faceimages where id = %s"""
            cursor.execute(sql_fetch_blob_query, (emp_id, ))
            record = cursor.fetchall()
            for row in record:
                print("Id = ", row[0] )
                print("Name = ", row[1])
                image =  row[2]
                print("Storing employee image and bio-data on disk \n")
                write_file(image, photo)
               #write_file(file, bioData)
        except mysql.connector.Error as error :
            connection.rollback()
            print("Failed to read BLOB data from MySQL table {}".format(error))
        finally:
            #closing database connection.
            if(connection.is_connected()):
                cursor.close()
                connection.close()
                print("MySQL connection is closed")
readBLOB(1, '/home/can/Desktop/photo.jpg')

Ожидаемый результат должен быть:

Reading BLOB data from python_employee table
Id = 1
Name = Eric
Storing employee image and bio-data on disk
MySQL connection is closed

Мой результат выглядит следующим образом:

Reading BLOB data from python_employee table
Id =  1
Name =  bytearray(b'Eric')
Storing employee image and bio-data on disk     
MySQL connection is closed

Код создает файл .jpg, но файл не может быть загружен.

«Не удалось загрузить изображение« photo.jpg »."
«Ошибка интерпретации файла изображения JPEG (неправильный вызов библиотеки JPEG в состоянии 201)»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...