【发布时间】:2015-08-10 22:06:32
【问题描述】:
最近我正在研究一个用 python 编写的简单 Telegram 机器人(使用 python-telegram-bot library)。在这个机器人中,我可以使用以下命令获取最后一个消息对象:
bot.getUpdates()[-1].message
根据Telegram Doc,消息对象包含一些属性,例如message_id,from,date,chat,...from 属性返回一个用户对象,它是消息的发送者。但由于from 是python keyword(在导入时使用),因此我们不能使用它会引发 SyntaxError。
作为一种替代方法,我们可以使用chat 属性,该属性在个人聊天中返回一个用户对象,在不包含的组中返回一个GroupChat 对象以及有关用户的信息。另外我找不到任何直接报告此错误的方法。
所以问题是有什么方法可以完成这项工作吗?或者任何替代解决方案?
【问题讨论】:
-
您是否尝试过使用
getattr()?它可以让你避免使用保留关键字。但是我还是不太确定,你自己开发了 JSON 到 Python 的对象代码吗? -
@Anonymous 不,我没有让我尝试过,不,这只是一个没有任何数据库的简单机器人。
-
我的意思是,他们提供的唯一 API 是 HTTP API,我认为没有官方的 Python 包装器。如果您开发了将 JSON 转换为 Python 对象的代码,则可以在解析数据时将
from属性更改为from_user或任何名称。如果它在 Python 中不起作用,则无需遵守他们的约定。但我有一种不好的感觉,我误解了这个问题。 -
@Anonymous 正如我认为的那样,
AttributeError: 'Message' object has no attribute 'from'. -
我不处理任何 JSON 文件,我只想做我解释过的事情。
标签: python telegram-bot python-telegram-bot