I have an users.json file which store the user’s id and lmessage
(current date,time) if he is write in a room.
{"5314934047066510132": {"lmessage": "2021-04-21 10:21:01"}}
How can I get all of these IDs and the lmessage
s which belongs to that ID without specify username or anything?
Currently I can get the user’s lmessage
with a command if I specify the username:
@client.command() async def lastmess(ctx, member: discord.Member = None): id = member.id with open('users.json', 'r') as f: users = json.load(f) lastmessage = users[str(id)]['lmessage'] await ctx.send(f'{member} Last message: {lastmessage}!')
Advertisement
Answer
If I understand your question correctly, you just want to iterate through all of the key-value pairs in the JSON data. If so, you can use the various dictionary methods available:
with open("users.json") as file: data = json.load(file) # Get all keys (user IDs) user_ids = list(data.keys()) # OR list(data) # Get all values (last message dictionary) last_messages = list(data.values()) # Get all keys and values tuples ids_and_last_messages = list(data.items()) # Get all last message dates last_message_dates = [uid["lmessage"] for uid in data.values()]