
本文介绍使用python脚本高效将数百行“email:password”格式的纯文本文件(如账号列表)自动转换为结构清晰、可读性强的标准json数组,避免手动编辑错误,支持500+行数据一键处理。
本文介绍使用python脚本高效将数百行“email:password”格式的纯文本文件(如账号列表)自动转换为结构清晰、可读性强的标准json数组,避免手动编辑错误,支持500+行数据一键处理。
在日常数据处理中,常遇到以简单冒号分隔(如 Email:Password)存储的凭证类文本文件。当行数达数百甚至上千时,人工转为JSON不仅低效,还极易因空格、换行或编码问题导致格式损坏。此时,一个轻量、健壮的Python脚本是最优解。
以下是一个经过优化的转换脚本,它能准确解析每行内容,自动去除首尾空白,并生成缩进规范、符合JSON Schema惯例的输出:
import json
def convert_txt_to_json(input_path: str, output_path: str = "result_list.json") -> None:
json_list = []
try:
with open(input_path, 'r', encoding='utf-8') as f:
for line_num, line in enumerate(f, 1):
line = line.strip()
if not line: # 跳过空行
continue
if ':' not in line:
print(f"警告:第 {line_num} 行缺少 ':' 分隔符,已跳过 → '{line}'")
continue
try:
email, password = line.split(':', 1) # 仅按第一个':'分割,兼容密码含冒号的情况
json_list.append({
"Email": email.strip(),
"Password": password.strip()
})
except ValueError:
print(f"警告:第 {line_num} 行格式异常,无法解析 → '{line}'")
continue
# 写入JSON文件(UTF-8编码 + 4空格缩进)
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(json_list, f, indent=4, ensure_ascii=False)
print(f"✅ 成功转换 {len(json_list)} 条记录,已保存至:{output_path}")
except FileNotFoundError:
print(f"❌ 错误:未找到输入文件 '{input_path}',请检查路径是否正确。")
except PermissionError:
print(f"❌ 错误:无权访问文件 '{input_path}' 或输出目录,请检查权限。")
# 使用示例(替换为你的真实文件名)
convert_txt_to_json("accounts.txt", "accounts.json")? 关键优化说明:
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
- 使用
split(':', 1)防止密码中含冒号(如user@example.com:p@ss:word)被错误截断; - 自动跳过空行与非法行,并提供带行号的友好提示;
- 显式指定
encoding='utf-8'和ensure_ascii=False,确保中文邮箱或特殊字符正常显示; - 封装为函数,便于复用和单元测试;
- 输出含统计信息(如“成功转换 487 条记录”),提升可追溯性。
⚠️ 注意事项:
- 输入文件需为纯文本(
.txt),每行严格为Email:Password格式,不包含标题或注释; - 若原始数据含制表符、多余空格或BOM头,建议先用编辑器(如VS Code)以UTF-8无BOM格式保存;
- 生产环境涉及敏感密码时,请勿将JSON文件提交至代码仓库,建议配合
.gitignore排除。
运行该脚本后,你将获得一份标准、可直接被前端、API或数据库导入工具识别的JSON数组——结构清晰、字段统一、机器友好,真正实现“一次编写,批量无忧”。

















