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

Python脚本从accounts.json加载邮箱地址失败问题求助

问题排查与解决方案

核心问题分析

脚本未从accounts.json正确加载邮箱账号,导致表单填充默认文本"YOUR EMAIL",本质是ACCOUNTS全局变量未被正确赋值。以下是针对性排查步骤和解决办法:


1. 确认loadAccounts()函数被实际调用

检查脚本主逻辑部分,是否存在loadAccounts()的调用语句。如果函数仅定义但未执行,ACCOUNTS会保留初始默认值(比如预先定义的[{"username":"YOUR EMAIL"...}]),直接导致填充错误。

解决: 在脚本启动的主流程中添加loadAccounts()调用。


2. 排查命令行参数ARGS.accounts是否被意外传入

loadAccounts()函数优先读取ARGS.accounts参数,若运行脚本时通过命令行传入了账号参数(比如--accounts user1:pass1 user2:pass2),则会完全忽略accounts.json文件。

验证: 在函数开头添加调试打印:

def loadAccounts():
    global ACCOUNTS
    print("ARGS.accounts的值:", ARGS.accounts)  # 新增调试打印
    if ARGS.accounts:
        # 原代码逻辑
        ...

如果输出非空,说明脚本正在使用命令行参数而非json文件,此时要么去掉命令行参数,要么确保参数格式为邮箱:密码的形式。


3. 验证accounts.json的文件路径正确性

脚本运行的工作目录可能和accounts.json所在目录不一致,导致读取的是其他位置的文件(甚至触发FileNotFoundError重新创建默认文件)。

验证: 在loadAccounts()的else块中添加路径打印:

import os
else:
    try:
        print("当前工作目录:", os.getcwd())
        print("尝试读取的文件路径:", os.path.abspath("accounts.json"))
        ACCOUNTS = json.load(open("accounts.json", "r"))
        print("加载成功的账号:", ACCOUNTS)
    # 原异常处理逻辑
    ...

如果打印的路径和你编辑的accounts.json路径不符,要么将json文件移至脚本工作目录,要么改用绝对路径打开文件(比如json.load(open("C:/scripts/accounts.json", "r")))。


4. 检查accounts.json的语法正确性

虽然你提供的accounts.json格式看起来正常,但隐藏的语法错误(比如多余逗号、引号不匹配)会导致json.load()失败,此时脚本可能 fallback 到默认值。

验证: 在终端执行python -m json.tool accounts.json命令校验文件语法,若有错误会直接提示。


5. 捕获JSON解析异常(可选优化)

修改loadAccounts()的异常处理,新增JSONDecodeError捕获,便于定位问题:

import json
def loadAccounts():
    global ACCOUNTS
    if ARGS.accounts:
        # 原逻辑
        ...
    else:
        try:
            ACCOUNTS = json.load(open("accounts.json", "r"))
            print("加载的账号:", ACCOUNTS)
        except FileNotFoundError:
            # 原创建文件逻辑
            ...
        except json.JSONDecodeError as e:
            print(f"JSON解析失败: {e}")  # 打印解析错误信息
            # 可在这里添加错误处理逻辑,比如退出脚本或提示用户修复文件

额外提示:修复email.json的语法错误

你提供的email.json中包含注释(DIDN'T CHANGE ANYTHING FOR RECIEVER),JSON语法不允许注释,这会导致该文件加载失败。请移除注释,修正后的内容如下:

[
  {
    "sender": "MY@gmail.com",
    "password": "MY APP PASSWORD",
    "receiver": "receiver@example.com",
    "withdrawal": "true",
    "lock": "true",
    "ban": "true",
    "phoneverification": "true",
    "proxyfail": "false"
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:07:55