Python Work命令不会向用户';钱包

Python Work命令不会向用户';钱包,python,discord,discord.py,Python,Discord,Discord.py,我正在执行一个有效的命令,当我尝试它时,bot不会在控制台中执行任何操作,也不会说错误。我怎样才能让它工作?我还在下面定义了open_账户 async def open_account(user): users = await get_bank_data() if str(user.id) in users: return False else: users[str(user.id)] = {} users[str(user.id)]["walle

我正在执行一个有效的命令,当我尝试它时,bot不会在控制台中执行任何操作,也不会说错误。我怎样才能让它工作?我还在下面定义了
open_账户

async def open_account(user):
  users = await get_bank_data()

  if str(user.id) in users:
    return False
  else:
    users[str(user.id)] = {}
    users[str(user.id)]["wallet"] = 0
    users[str(user.id)]["bank"] = 0

    with open("bank.json", "w") as f:
      json.dump(users, f, indent=4)
      return True
我的获取银行数据代码

async def get_bank_data():
  with open("bank.json", "r") as f:
    users = json.load(f)

    return users

async def update_bank(user, change=0, mode="wallet"):
  users = await get_bank_data()

  users[str(user.id)][mode] += change

  with open("bank.json", "w") as f:
    json.dump(users, f, indent=4)

    bal = [users[str(user.id)]["wallet"], users[str(user.id)]["bank"]]
    return bal
我的工作指挥部

@bot.command()
async def work(ctx):
  member = ctx.author
  await open_account(member)

  users = await get_bank_data()
  user = member
  money = random.randrange(0, 30)

  users[str(user.id)]["wallet"] += money

  with open("bank.json") as f:
    json.dump(users, f, indent=4)

  embed=discord.Embed(title="Work", description=f"{ctx.author.name} went to work!", color=0x00FFFF)
  embed.add_field(name="You Earned:", value=f"{money} Ulti Coins", inline=False)
  embed.set_thumbnail(url=user.avatar_url)
  embed.set_footer(text="Your total amount is saved across all servers that I'm in!")
  await ctx.send(embed=embed)

您的错误是打开了JSON文件,但在第3步之后(在我的例子中,
print
函数)什么也没有发生。 这是因为您没有向JSON文件写入任何内容

您可以使用以下功能修复此错误:

以open(“bank.json”,“w”)作为f:#w用于编写
json.dump(用户,f)
完整/新代码可以是:

@client.command()
异步def工作(ctx):
成员=ctx.author
等待开户(会员)
打印(“开户”)
用户=等待获取银行数据()
用户=成员
money=random.randrange(0,30)
打印(f“所选金额{货币}”)
用户[str(user.id)][“钱包”]+=money
印刷(“功能作品”)
将open(“bank.json”,“w”)作为f:#在此处更改
json.dump(用户,f)
打印(“更新工作”)
embed=discord.embed(title=“Work”,description=f“{ctx.author.name}开始工作了!”,color=0x00FFFF)
embed.add_字段(name=“youreanded:”,value=f“{money}多枚硬币”,inline=False)
嵌入.set_缩略图(url=user.avatar_url)
embed.set_footer(text=“我所在的所有服务器都保存了您的总金额!”)
等待ctx.send(嵌入=嵌入)
  • 下次您可以在
    print
    中构建以实际查看错误发生的位置时,这是一个接近错误的好方法

哪里是
获取银行数据
?@Dominik我编辑了代码以便您可以查看。