我有一个奇怪的问题,找不到解决办法。我想从我的 JSON 排行榜中获得最佳用户并且它正在工作。但现在我想检查 message.author 和排行榜中的用户是否具有相同的用户 ID。如果是,那么应该运行一个动作。
我的代码:
with open("level.json", "r") as a:
level = json.load(a)
high_score_list = sorted(level, key=lambda x: level[x].get('secXP'), reverse=True)
print(f"User2: {high_score_list[0]} + msg author: {message.author.id} - {message.author.name}")
# thats not working
if message.author.id == high_score_list[0]:
embed.set_author(name=f'best leaderboard user!)
embed.color = 0x686de0
即使用户 ID 与 if 检查完全相同,机器人也不会这样做。我尝试在 if 检查中“打印”行,但即使这样也没有运行。
答案 0 :(得分:2)
我认为您的问题与数据类型有关。检查您的 json 高分列表是否有文本或数字条目。作者的 ID 始终是 std::variant
类型,因此如果您的高分是 variant
,它们将永远不会相等。