psycopg2 преобразует память назад в массив объектов psycopg2.binary - PullRequest
0 голосов
/ 05 апреля 2020

В соответствии с заголовком, я вставил в свою postgresql БД группу изображений, которые были добавлены в массив и использовали курсор для отправки в БД. Столбец в базе данных - это bytea [], поэтому он работал для меня.

Я использовал этот фрагмент кода, чтобы преобразовать образ потока в двоичный файл, поместить его в массив и отправить в db

somearray.append(psycopg2.Binary(image.content))

Но при выполнении оператора select для получения этого массива из базы данных я получил представление о памяти, которое на данный момент я не уверен, как преобразовать его обратно в массив.

I Я действительно потерян в этот момент после исследования, так как большинство постов говорит мне использовать toByte () для преобразования памяти в некоторую байтовую строку, но моя цель - преобразовать память в массив или двоичные элементы для преобразования двоичных файлов в изображения .

1 Ответ

0 голосов
/ 09 апреля 2020

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

cursor.execute("select byte_array from test")
image_sets = [row[0] for row in cursor.fetchall()]
images_as_bytes = [bytes(image) for image_array in image_sets for image in image_array]
...