discord.py не обновляет json файл

Код:

@bot.event
async def on_message(message):
    with open('users.json', 'r') as f:
        users = json.load(f)

    async def update_data():
        global users, user
        if not user in users:
            users[user] = {}
            users[user]['exp'] = 0
            users[user]['lvl'] = 1

    async def add_exp():
        global users,user,exp
        users[user]['exp'] += exp

    async def add_lvl():
        global users,user
        exp = users[user]['exp']
        lvl = users[user]['lvl']
        if exp > lvl:
            lvl = lvl + 1
            exp = 0
            await message.channel.send(f'{message.author.mention} повысил свой уровень!')
            users[user]['exp'] = 0
            users[user]['lvl'] = lvl + 1


    await update_data(users, str(message.author.id))
    await add_exp(users,str(message.author.id), 1.04)
    await add_lvl(users,str(message.author.id))


    with open('users.json', 'w') as f:
        json.dump(users,f)

    await bot.process_commands(message)

Ошибка:ошибка кода

В json файле ничего не изменяется, только строка: {}

Прошу помочь


Ответы (1 шт):

Автор решения: Innokentie

Вы пытаетесь использовать в своей функции update_data() переменные, передавая их в аргументах функции, которых она не принимает. Об этом и говорит ошибка. Объявите аргументы функции функции:

    async def update_data(user, author):
        if not user in users:
            users[user] = {}
            users[user]['exp'] = 0
            users[user]['lvl'] = 1
→ Ссылка