Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python (discord.py)获取用户';s、 来自JSON文件但未指定名称/id的最后一条消息_Python_Python 3.x_Discord.py - Fatal编程技术网

Python (discord.py)获取用户';s、 来自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

我有一个users.json文件,它存储用户的id和
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”
错误