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
