Как сохранить фотографию из Telegram-бота (Aiogram) в базу данных PostgreSQL?

#python #postgresql #telegram #psycopg2

Вопрос:

Я использую это для загрузки фотографий:

 file_info = await bot.get_file(photo[len(photo) - 1].file_id)
new_photo = await bot.download_file(file_info.file_path)
 

а затем new_photo есть _io.BytesIO , но я хочу сохранить его в БД PostgreSQL в bytea поле, и у меня есть эта ошибка: psycopg2.ProgrammingError: can't adapt type '_io.BytesIO' .
Я не могу преобразовать в bytes эту переменную. Как сохранить его в моей базе данных? Я погуглил, но безрезультатно.

Заранее спасибо.

Ответ №1:

Мне пришлось преобразовать это в bytes с read() :

 file_info = await bot.get_file(photo[len(photo) - 1].file_id)
new_photo = (await bot.download_file(file_info.file_path)).read()