Добавить несколько файлов типа bytes-like object в json
Требуется выложить несколько фотографий на сервис telegraph от telegram.
Пытаюсь делать так:
photo_files = []
for photo in photos:
with open(photo, 'rb') as f:
photo_files.append(f)
path = requests.post(
'https://telegra.ph/upload', files={'file':('file', photo_files, 'image/jpeg')}).json()[0]['src']
response = telegraph.create_page(
title = "Title",
html_content="<p>Description</p> \
<img src='{}'/>".format(path)
)
На что вылетает исключение TypeError в котором говорится что нужен bytes-like object, но не список
Ответы (1 шт):
Автор решения: Xander
→ Ссылка
В словаре files каждый файл должен быть отдельным элементом.
Как-то так должно заработать:
photo_files = {}
for photo in photos:
with open(photo, 'rb') as f:
photo_files[photo] = (photo, f, 'image/jpeg')
path = requests.post(
'https://telegra.ph/upload', files=photo_files).json()[0]['src']
response = telegraph.create_page(
title = "Title",
html_content="<p>Description</p> \
<img src='{}'/>".format(path)
)