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

使用Python Pandas将JSON文本文件转Excel时遇TypeError问题求助

JSON Lines文件转Excel的TypeError问题解决

问题场景

你的json_test.txt是JSON Lines格式(每行一个独立JSON对象),初始代码运行时触发TypeError: the JSON object must be str, bytes or bytearray错误。

错误原因分析

  1. 格式不匹配:文件是每行一个JSON对象,不是标准的JSON数组,无法用json.load()直接整体解析。
  2. 参数类型错误:readlines()返回字符串列表,但json.load()仅接受文件对象、字符串、字节类数据,不能处理列表。
  3. 代码冗余/错误:with块会自动关闭文件,无需手动调用f.close();import pathlib as Path是错误导入方式且未用到该模块;全局变量df_json在函数内被重新定义为局部变量,逻辑无效。

高效解决方法

方法一:Pandas直接读取(最简洁)

Pandas原生支持JSON Lines格式,一行代码即可完成读取与转换:

import pandas as pd

def main():
    # 读取JSON Lines文件,lines=True表示每行一个JSON对象
    df = pd.read_json("json_test.txt", lines=True)
    # 导出为Excel,index=False取消行索引
    df.to_excel('json_to_excel.xlsx', index=False)

if __name__ == '__main__':
    main()

方法二:手动逐行解析(适合自定义处理)

如果需要对每行JSON做额外逻辑处理,可手动逐行解析:

import json
import pandas as pd

def main():
    data_list = []
    with open("json_test.txt", 'r') as f:
        for line in f:
            # 跳过空行,避免解析错误
            cleaned_line = line.strip()
            if cleaned_line:
                # 解析单行JSON字符串
                data = json.loads(cleaned_line)
                data_list.append(data)
    # 转换为DataFrame并导出
    pd.DataFrame(data_list).to_excel('json_to_excel.xlsx', index=False)

if __name__ == '__main__':
    main()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 06:42:33