[英](discord.py) Get user's, last message from a JSON file without specifying the name/id
我有一個users.json文件,如果他在房間里寫,它會存儲用戶的 id 和lmessage
(當前日期、時間)。
{"5314934047066510132": {"lmessage": "2021-04-21 10:21:01"}}
如何在不指定用戶名或任何內容的情況下獲取所有這些 ID 和屬於該 ID 的lmessage
?
目前,如果我指定用戶名,我可以通過命令獲取用戶的lmessage
:
@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}!')
如果我正確理解您的問題,您只想遍歷 JSON 數據中的所有鍵值對。 如果是這樣,您可以使用各種可用的字典方法:
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()]
我不知道您希望 output 結果如何,但這是如何在不指定用戶的情況下獲取所有 ID,您可以將其編輯為 output 或根據需要顯示結果
@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}!')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.