#python #discord #discord.py-rewrite
#python #Discord #discord.py-переписать
Вопрос:
Я создал команду leaderboard для своего бота, чтобы показывать самых богатых людей на моем сервере, и я получаю ошибку ret AttributeError: объект ‘NoneType’ не имеет атрибута ‘name’. Ошибка. Ниже приведен мой код. Кто-нибудь знает какое-либо исправление?
@bot.command(aliases = ["lb"])
async def leaderboard(ctx,x = 1):
users = await get_bank_data()
leader_board = {}
total = []
for user in users:
name = int(user)
total_amount = users[user]["wallet"] users[user]["Test Subject Zone"]
leader_board[total_amount] = name
total.append(total_amount)
total = sorted(total,reverse=True)
em = discord.Embed(title = f"Top {x} Richest People" , description = "This is decided on the basis of raw money in the bank and wallet",color = discord.Color(0xfa43ee))
index = 1
for amt in total:
id_ = leader_board[amt]
member = bot.get_user(id_)
name = member.name
em.add_field(name = f"{index}. {name}" , value = f"{amt}", inline = False)
if index == x:
break
else:
index = 1
await ctx.send(embed = em)```
Комментарии:
1. Как вы пытались отладить это до сих пор? Вы выполнили это построчно в отладчике, чтобы убедиться, что
users
он содержит то, что вы ожидаете, а также работает лиname = int(user)
он так, как ожидалось?2. Где
member
определено?3. @RandomDavis Да, у меня есть, потому что, если я удалю эту строку, все будет работать отлично, за исключением того, что он показывает только идентификатор пользователя, а команда name должна показывать имя вместо идентификатора пользователя
4. @tralph3 member = bot.get_user (id_) строка 16
5. @jguardia Итак, вы убедились, что строка
id_ = leader_board[amt]
возвращает anid
? Вы проверили, чтоbot.get_user(id_)
возвращает пользователя, в отличие отNone
? Вы проверили этоusers[user]["wallet"]
иusers[user]["Test Subject Zone"]
возвращаете правильную вещь?users = await get_bank_data()
Возвращает ли правильные данные?