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

如何无需拼接操作展开DataFrame中嵌套JSON列?

如何展开DataFrame中嵌套JSON的'bultos'列?

问题背景

已通过pd.json_normalize处理JSON数据生成DataFrame,但其中的bultos列仍为嵌套JSON结构,尝试再次全局归一化未成功。需求是按行位置自动新增列展开该嵌套JSON,无需依赖索引匹配。

已执行的预处理代码

response1 = requests.get(url1, params=params1, headers=headertoken)
textresponse1 = response1.text
if "El contrato enviado no tiene envios registrados." in textresponse1:
    continue
textresponse1 = json.loads(response1.text)
response1_df = pd.json_normalize(textresponse1['envios'])
enviosdf = pd.concat([enviosdf,response1_df])

当前'bultos'列数据示例

0   {'kilos': 0.0025, 'IdDeProducto': 'ysyHhBHttHd...
1   {'kilos': 0.0025, 'IdDeProducto': 'QNEOqaNXtsi...
2   {'kilos': 0.0025, 'IdDeProducto': 'V7b3D7xaSur...

解决方案

直接提取bultos列单独做JSON归一化,再与原DataFrame横向拼接即可,默认按行位置对齐,无需索引匹配:

# 单独展开bultos列的嵌套JSON
bultos_expanded = pd.json_normalize(enviosdf['bultos'])

# 移除原DataFrame中的bultos列,再与展开后的结果横向拼接
enviosdf = pd.concat([enviosdf.drop('bultos', axis=1), bultos_expanded], axis=1)

说明

  • 此方法会将bultos中的键(如kilos、IdDeProducto)转为新列,每一行的嵌套数据会精准对应到原DataFrame的同一行。
  • 之前尝试全局归一化失败,是因为pd.json_normalize默认处理的是整个DataFrame的顶层结构,无法直接识别嵌套在列中的JSON,单独提取列处理即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:41:14