[英]Not sure how to convert string to usable discord data
我正在尝试为我的 discord 机器人创建一个系统,以将有关消息的数据存储在文本文件中。 为此,消息信息变成一个字符串。 问题是当我尝试使用这些数据时出现错误。 例如,当我尝试执行 message.remove_reaction 时,我收到以下错误消息:
File "main.py", line 195, in on_raw_reaction_add
await message.remove_reaction("✅", payload.member)
AttributeError: 'str' object has no attribute 'remove_reaction'
我正在将文本文件转换为列表并将其转换回变量。 例如,消息 = 文件数据 [5]。 这是从文本文件中提取数据的代码。
for x in fileNames:
f = open(x, "r+")
messageid = f.readline()
#creates list if message id match is found
if (int(messageid) == int(payload.message_id)):
p = open(x, "r+")
global file_name
file_name = p
for x in p:
file = x.rstrip('\n')
file_data.append(file)
break
print(file_data)
#assigning variables from list
messageid = file_data[0]
in_embed = file_data[2]
game_actual = file_data[3]
goal_actual = file_data[4]
message = file_data[5]
names = []
#stores member information onto seperate list
for x in range(6,len(file_data)):
names.append(x)
将它们转换为变量之前的列表:
['814375931497021490', '811857283771662340', "<Message id=814375932051456000 channel=<TextChannel id=811857283771662340 name='general' position=0 nsfw=False news=False category_id=811857283771662338> type=<MessageType.default: 0> author=<Member id=810761971979911188 name='CockGobbler' discriminator='2337' bot=True nick=None guild=<Guild id=811857283771662337 name='Bot Test 2' shard_id=None chunked=False member_count=2>> flags=<MessageFlags value=0>>", 'game2', '2', "<Message id=814375931497021490 channel=<TextChannel id=811857283771662340 name='general' position=0 nsfw=False news=False category_id=811857283771662338> type=<MessageType.default: 0> author=<Member id=810761971979911188 name='CockGobbler' discriminator='2337' bot=True nick=None guild=<Guild id=811857283771662337 name='Bot Test 2' shard_id=None chunked=False member_count=2>> flags=<MessageFlags value=0>>"]
您的代码没有显示您如何将Message
转换为字符串或您尝试使用它做什么,但通常我建议您不要将其转换为字符串。
更好的方法是保存Message.content
,它已经是消息的真实内容的字符串,以防您想要访问内容。 或者您可以保存Message.id
并且当您需要获取Message
object 以使用 function 时,例如:
await message.remove_reaction
您要做的只是检索Message
object(或本例中的PartialMessage
):
my_message = get_partial_message(message_ID)
await my_message.remove_reaction("✅", payload.member)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.