【发布时间】:2020-03-25 10:56:02
【问题描述】:
不久前,我制作了一个不和谐机器人,其目的涉及我和我的朋友需要的消息嵌入。长话短说,由于主机(树莓派)死了,机器人离线了一年。今天快进,我们再次需要它,所以我尝试启动它,但注意到我的大部分代码不再工作了,因为 discord.py 的异步分支已更新到 v1.0,这带来了重大变化和需求代码迁移以符合新库。查看文档,除了我的机器人的嵌入部分之外,我能够弄清楚所有内容。哪个最重要。
这是我将重点关注的代码,后面还有更多,但这与这部分无关,因为如果我能成功地将我想要的值存储在字符串中,那么其余的应该可以工作。
async def on_message(message):
serverid = message.guild.id
channel = message.channel
messagecontent = message.content
if message.embeds:
try:
charaname = message.embeds[0]['author']['name']
charaseries = message.embeds[0]['description']
except AttributeError:
return
我基本上想要做的是,如果消息有嵌入,那么我需要将名称和描述值存储在单独的字符串中,以供以后在代码中使用。但我试图这样做:
Ignoring exception in on_message
Traceback (most recent call last):
File "C:\discord\client.py", line 270, in _run_event
await coro(*args, **kwargs)
File "C:\path_to_script", line 35, in on_message
charaseries = message.embeds[0]['description']
TypeError: 'Embed' object is not subscriptable
一些研究向我表明,“可下标”意味着一个对象可以包含多个其他对象,例如列表。更好地解释了here。如果它不可下标,那么我猜新库有一种全新的处理方式,我似乎无法弄清楚。所以我需要帮助来了解这里到底发生了什么,这样我才能调整我的代码并让这部分再次工作。
非常感谢您的帮助,谢谢!
【问题讨论】:
标签: python-3.x discord.py