Python (discord.py)获取用户';s、 来自JSON文件但未指定名称/id的最后一条消息
我有一个users.json文件,它存储用户的id和Python (discord.py)获取用户';s、 来自JSON文件但未指定名称/id的最后一条消息,python,python-3.x,discord.py,Python,Python 3.x,Discord.py,我有一个users.json文件,它存储用户的id和lmessage(当前日期、时间),如果他在房间里写东西的话 {"5314934047066510132": {"lmessage": "2021-04-21 10:21:01"}} 在没有指定用户名或任何东西的情况下,如何获取所有这些ID以及属于该ID的lmessages 当前,如果指定用户名,我可以通过命令获取用户的lmessage: @client.command() asyn
lmessage
(当前日期、时间),如果他在房间里写东西的话
{"5314934047066510132": {"lmessage": "2021-04-21 10:21:01"}}
在没有指定用户名或任何东西的情况下,如何获取所有这些ID以及属于该ID的lmessage
s
当前,如果指定用户名,我可以通过命令获取用户的lmessage
:
@client.command()
async def lastmess(ctx,成员:discord.member=None):
id=member.id
将open('users.json','r')作为f:
users=json.load(f)
lastmessage=users[str(id)]['lmessage']
等待ctx.send(f'{member}最后一条消息:{lastmessage}!')
如果我正确理解了您的问题,您只需要遍历JSON数据中的所有键值对。如果是,您可以使用各种可用的字典方法:
以open(“users.json”)作为文件的:
data=json.load(文件)
#获取所有密钥(用户ID)
user_id=list(data.keys())#或list(data)
#获取所有值(最后一条消息字典)
最后消息=列表(data.values())
#获取所有键和值元组
ids_和_last_messages=list(data.items())
#获取所有最后消息日期
上次消息日期=[uid[“lmessage”]表示数据中的uid.values()]
我不知道您希望如何输出结果,
但这就是如何在不指定用户的情况下获取所有ID
您可以对其进行编辑,以根据需要输出或显示结果
@client.command()
async def lastmess(ctx, member: discord.Member = None):
id = member.id
with open('users.json', 'r') as f:
users = json.load(f)
for user in users:
print(user, user['lmessage']) # here you can print all the IDS/lmessage
lastmessage = users[str(id)]['lmessage']
await ctx.send(f'{member} Last message: {lastmessage}!')
谢谢你~15 chari也尝试了您的答案,但是
discord.member=None
不起作用,获取'NoneType'对象没有属性“id”
错误