отправить двоичный файл с помощью sendDocument в python-telegram-bot

эта работа :

mybot.sendDocument(chat_id=chatid, document=open('bla.pdf', rb'))

Но если бы я сделал раньше:

with open('bla.pdf', 'rb') as fp:
    b = fp.read()

Я не могу:

mybot.sendDocument(chat_id=chatid, document=b)

Ошибка:

TypeError: объект типа "байты" не сериализуем в формате JSON.

Я использую python 3.5.2 win или linux

Спасибо за ответ


person jgirardet    schedule 03.05.2017    source источник


Ответы (2)


Попробуйте отправить только файловый объект:

mybot.sendDocument(chat_id=chatid, document=open('bla.pdf', 'rb'))
person Vladimir Vlasov    schedule 26.05.2017

извините, я не видел вашего ответа.

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

Я решил это так:

mybot.sendDocument(chat_id=chatid,document=io.BytesIO(self.downloaded_file))
person jgirardet    schedule 04.12.2017