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

如何将JSON Lines文件转为标准JSON?解决JSONDecodeError报错

修复JSON Lines转标准JSON的解析错误

错误原因

json.decoder.JSONDecodeError: Extra data 通常由以下情况引发:

  • 待解析的行包含多余空白字符(如换行符、空格、制表符),干扰JSON解析器识别
  • 文件中存在空行,解析空字符串时触发错误
  • 某一行内包含多个JSON对象(违反JSON Lines每行一个对象的规范)

修复后的代码

import json

data = []
with open('1.txt', encoding='utf-8') as f:
    for line in f:
        # 去除行首尾空白字符(含换行、空格等)
        cleaned_line = line.strip()
        # 跳过空行,避免解析无意义内容
        if not cleaned_line:
            continue
        try:
            # 解析清理后的单行JSON对象
            json_obj = json.loads(cleaned_line)
            data.append(json_obj)
        except json.JSONDecodeError as e:
            # 打印错误信息,快速定位问题行
            print(f"解析失败的行内容: {cleaned_line}")
            print(f"错误详情: {e}")

# 写入标准JSON文件,保留中文编码并格式化输出
with open('test_output.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

关键修复说明

  • line.strip():清理每行首尾的干扰字符,确保解析的是纯净的JSON字符串
  • 空行判断:跳过无内容的行,避免解析空字符串报错
  • try-except块:捕获解析错误并输出详情,方便定位具体问题行
  • 写入配置:指定encoding='utf-8'和ensure_ascii=False避免中文乱码,indent=4让输出JSON结构更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:43:17