Я получаю ошибку AttributeError: объект ‘NoneType’ не имеет атрибута ‘name’ в моей созданной мной команде leaderboard

#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] возвращает an id ? Вы проверили, что bot.get_user(id_) возвращает пользователя, в отличие от None ? Вы проверили это users[user]["wallet"] и users[user]["Test Subject Zone"] возвращаете правильную вещь? users = await get_bank_data() Возвращает ли правильные данные?