You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.py运行出现RuntimeWarning: Command.__call__ was never awaited报错求助

错误原因

  1. open_account 被定义为普通同步函数,但你在异步命令中使用await调用它,同时函数内部也使用了await语法调用同步函数get_bank_data,同步函数不支持await操作,直接触发协程未等待的报错。
  2. open_account 内部逻辑冗余:第一行users = await get_bank_data()执行后,你又直接读取bank.json覆盖了users变量,这行代码完全无效,是报错的直接诱因。
  3. 额外隐藏问题:discord.py的颜色类首字母大写,discord.color.dark_green写法错误,后续运行会触发属性错误。

修复方法

按以下规则修改代码即可:

  • 将open_account改为异步函数
  • 删除open_account内多余的users = await get_bank_data()行
  • 修正Embed的颜色写法

修复后完整代码

import discord
import json
import random
from discord.ext import commands

# 此处保留你原有client初始化代码

@client.command()
async def balance(ctx):
  await open_account(ctx.author)
  user = ctx.author
  users = get_bank_data()

  wallet_amt = users[str(user.id)]["wallet"]
  bank_amt = users[str(user.id)]["bank"]

  em = discord.Embed(title = f"{ctx.author.name}'s balance",color=discord.Color.dark_green())
  em.add_field(name = "Wallet Balance", value = wallet_amt)
  em.add_field(name = "Bank Balance", value = bank_amt)
  await ctx.send(embed=em)

@client.command()
async def beg(ctx):
  await open_account(ctx.author)

  users = get_bank_data()

  user = ctx.author

  earnings = random.randrange(51)

  await ctx.send(f"Someone gave you {earnings} coins!!")

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

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

# 修正后的open_account函数
async def open_account(user):
  with open("bank.json", "r") as f:
    users = json.load(f)

  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)
  return True

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

额外注意

首次运行前请确保你项目目录下已经创建了bank.json文件,且写入了初始内容{},否则会报文件读取错误。

内容的提问来源于stack exchange,提问作者Tree Jin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:15:04