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

Discord机器人货币系统报错:'amounts'未定义问题求助

Discord机器人货币系统NameError问题解决办法

直接把amounts改成amounts.json没用,问题根源是你只创建了json文件,但没在代码里把文件内容加载到amounts变量中,Python找不到这个变量才触发NameError。解决步骤如下:

  1. 导入必要模块
    先引入json和os模块,用于读写json文件和检查文件状态:

    import json
    import os
    
  2. 初始化并加载数据到amounts变量
    在机器人启动时执行这段代码,确保amounts变量被正确赋值:

    # 检查amounts.json是否存在,不存在就创建空文件
    if not os.path.exists('amounts.json'):
        with open('amounts.json', 'w') as f:
            json.dump({}, f)
    # 读取文件内容到amounts变量
    with open('amounts.json', 'r') as f:
        amounts = json.load(f)
    
  3. 在bal命令中正确使用amounts变量
    调用bal命令时,要处理用户未在记录中的情况,并且修改数据后要写回文件避免丢失:

    @bot.command()
    async def bal(ctx):
        user_id = str(ctx.author.id)
        # 若用户无余额记录,初始化为0
        if user_id not in amounts:
            amounts[user_id] = 0
        await ctx.send(f"你的余额是 {amounts[user_id]} 货币")
        # 将更新后的余额保存回文件
        with open('amounts.json', 'w') as f:
            json.dump(amounts, f)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:40:20