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

如何在Pandas中直接读取行存储嵌套JSON文件 无需借助外部转换库

Pandas 直接读取嵌套JSON Lines文件的实现方法

你手里的文件属于JSON Lines格式,特点就是每行存储一个独立的JSON对象,Pandas的read_json原生支持这种格式,不需要额外第三方库,你之前没实现是忽略了lines参数,具体操作如下:

方法1:分步骤读取+拆分嵌套字段

先读取原始数据,再手动展开嵌套的ssh字段:

import pandas as pd

# 读取JSON Lines文件,指定lines=True即可识别每行一个JSON的格式
df = pd.read_json("你的文件路径.json", lines=True)

# 拆分嵌套在data字段中的ssh相关属性
df["ssh_status"] = df["data"].map(lambda x: x["ssh"]["status"])
df["ssh_protocol"] = df["data"].map(lambda x: x["ssh"]["protocol"])
df["ssh_error"] = df["data"].map(lambda x: x["ssh"]["error"])

# 可选:删除不需要的原始嵌套data列
df = df.drop(columns=["data"])

方法2:用json_normalize一键展开嵌套字段

如果嵌套层级多、字段多,可以用json_normalize自动展开所有嵌套字段,不需要手动逐个写字段名:

import pandas as pd
import json

# 逐行读取文件加载为JSON对象列表
with open("你的文件路径.json", "r", encoding="utf-8") as f:
    json_list = [json.loads(line.strip()) for line in f if line.strip()]

# 自动展开所有嵌套层级,生成扁平化的DataFrame
df = pd.json_normalize(json_list)

用这个方法读出来的列名会自动按层级命名,比如data.ssh.status、data.ssh.protocol,你可以按需重命名列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:27:03