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

如何将usnparser输出的类JSON数据转换为pandas DataFrame?

嘿,我来帮你搞定这个问题!你的数据其实是JSON Lines格式(也就是每行一个独立的JSON对象),而不是标准的包裹在数组里的JSON结构,这就是为啥你之前的方法没成功~下面给你两种靠谱的解决方案:

解决方法

方法1:直接用pandas读取(最简单高效)

pandas的read_json原生支持JSON Lines格式,只需要加一个lines=True参数就能完美适配你的数据:

import pandas as pd

# 替换成你的实际文件路径
file_path = "your_usnparser_output.json"
df = pd.read_json(file_path, lines=True)
print(df)

执行后,每行的JSON对象会自动转换成DataFrame的一行,字段对应列,完全符合你的需求。

方法2:结合json模块手动处理(适合需要中间自定义操作的场景)

如果你需要在读取过程中做一些额外处理(比如过滤特定行、修改字段值),可以逐行读取文件,用json模块解析每个对象后再转成DataFrame:

import pandas as pd
import json

data_list = []
file_path = "your_usnparser_output.json"

# 逐行读取并解析JSON对象
with open(file_path, 'r') as f:
    for line in f:
        # 跳过可能存在的空行
        if line.strip():
            json_obj = json.loads(line)
            data_list.append(json_obj)

# 将列表转成DataFrame
df = pd.DataFrame(data_list)
print(df)

为啥你之前的方法行不通?

你之前使用orient='records'时,pandas期望的是外层包裹数组的JSON数据(比如[{"key1":"val1"}, {"key1":"val2"}]),但你的数据是每行一个独立的JSON对象,没有外层数组结构,所以直接用orient='records'会报错或者无法正确解析数据。而lines=True参数就是明确告诉pandas:“这个文件里每行都是一个独立的JSON对象”,刚好匹配你的数据格式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:47:12