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

如何在Pandas中规范化嵌套JSON列并合并至DataFrame?

处理JAO API嵌套数据的Pandas展开方案

第一步:修正API请求逻辑

你当前的请求代码存在小问题——requests.get中传入json=data是不必要的,应该先获取响应后解析JSON数据,再转换为DataFrame:

import pandas as pd
import requests

Base_URL = "https://api.jao.eu/OWSMP/getauctions"

headers = {
    "AUTH_API_KEY": "06e690fb-697b-4ab2-9325-4268cbd14502"
}

params = {
    "horizon":"Daily",
    "corridor":"IF1-FR-GB",
    "fromdate":"2021-01-01"
}

# 发送请求并解析响应
r = requests.get(Base_URL, headers=headers, params=params)
response_data = r.json()

# 转换为DataFrame
df = pd.DataFrame(response_data)

第二步:展开嵌套的results列

results列是嵌套字典列表,我们可以用pd.json_normalize配合explode来完整展开数据,同时保留原DataFrame的其他字段:

# 先将results列的列表拆分为多行(每个字典对应一行)
df_exploded = df.explode('results', ignore_index=True)

# 展开嵌套的字典为单独列
df_normalized = pd.json_normalize(df_exploded['results'])

# 合并原DataFrame的其他列和展开后的列
final_df = pd.concat([df_exploded.drop('results', axis=1), df_normalized], axis=1)

关键逻辑说明

  • explode('results'):把每个行中results列的列表拆分成多行,每一行对应列表里的一个字典,同时保留原行的其他字段。
  • pd.json_normalize():把嵌套字典直接转换成结构化的列,自动提取字典的键作为列名。
  • pd.concat():将原DataFrame去掉results列后的数据,和展开后的结构化数据横向合并,得到完整的扁平表。

这样处理后,你就能得到每个小时数据对应一行的标准DataFrame,所有字段都展开为单独列,方便后续分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:10:26