因此,只要我的 JSON 文件中只有 1 个人,我的代码就可以正常工作。一旦另一个用户在 json 文件中注册。我收到此错误:命令引发异常:类型错误:“dict”和“dict”实例之间不支持“<”。
知道我的错误是什么吗?
我的代码
@client.command()
async def leaderboard(ctx):
with open('users.json', 'r') as f:
data = json.load(f)
top_users = {k: v for k, v in sorted(data.items(), key=lambda item: item[1], reverse=True)}
names = ''
for postion, user in enumerate(top_users):
names += f'{postion+1} - <@!{user}> mit {top_users[user]}\n'
embed = discord.Embed(title="Rangliste")
embed.add_field(name="Spieler", value=names, inline=False)
await ctx.send(embed=embed)
答案 0 :(得分:0)
您正在尝试比较字典,默认情况下不支持。
要解决此问题,您需要更改您的键功能,因为它目前提供 dict
。
# The following line gives an error because '<' is not applicable for item[1]
sorted(data.items(), key=lambda item: item[1], reverse=True)
请注意,您使用的属性应该具有可比性。
sorted(data.items(), key=lambda item: item[1]["someattribute"], reverse=True)