如何使用Python Pandas将嵌套JSON字段提取为DataFrame的独立列
解决方案
你遇到的是典型的嵌套JSON结构展平需求,这里提供两种经过验证的可行方案,600条数据量下性能完全达标:
方案1:使用json_normalize直接加载(推荐)
pandas内置的json_normalize是专门处理嵌套JSON结构的工具,无需手动拆分字段:
import pandas as pd import json # 加载JSON文件 data = json.load(open('../fileservice.json')) # 直接展平嵌套结构 df = pd.json_normalize(data["Functions"]) # 重命名Variables下的字段,去掉前缀 df = df.rename(columns=lambda x: x.replace("Environment.Variables.", "") if x.startswith("Environment.Variables.") else x) # 按需保留需要的列 df = df[["FunctionName", "COMMIT_HASH", "SERVICE_OWNER"]]
方案2:基于已有DataFrame拆分
如果已经生成了初始DataFrame不想重新加载,可以直接拆分Environment列:
# 提取Variables层的所有字段为独立列 var_series = df["Environment"].apply(lambda x: pd.Series(x["Variables"])) # 合并到原表的FunctionName列后 df = pd.concat([df[["FunctionName"]], var_series], axis=1) # 按需筛选目标列 df = df[["FunctionName", "COMMIT_HASH", "SERVICE_OWNER"]]
补充说明
你之前用explode无效是因为该方法仅用于处理列表类型的列,无法处理嵌套字典结构,不需要使用该方法。
内容的提问来源于stack exchange,提问作者Miles
相关产品推荐
相关产品推荐

