下载图片 Python 电报 API

Download Image Python Telegram API

我按照他们关于下载图片的简短教程进行操作,但我遇到了异常:

telegram.photosize.PhotoSize object at ... is not JSON serializable

捕获图像的函数如下所示:

def photo(bot, update):
    file_id = update.message.photo[-1]
    newFile = bot.getFile(file_id)
    newFile.download('test.jpg')
    bot.sendMessage(chat_id=update.message.chat_id, text="download succesfull")

photo_handler = MessageHandler(Filters.photo, photo)
dispatcher.add_handler(photo_handler)

此时我不知道自己做错了什么,也无法在网上找到任何解决方案。

原来我误解了数据的形状。我最初认为 update.message.photo 集合只包含文件 ID。这导致我在尝试通过 ID 获取文件时传递了错误类型的对象。为了提取文件 ID,我需要从最后一张照片中取出 file_id

file_id = update.message.photo[-1].file_id