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

如何在Python中将嵌套JSON API响应转换为指定格式的DataFrame

嵌套JSON转DataFrame的格式转换方案

你遇到的问题是API返回的嵌套JSON直接转成DataFrame后结构不符合需求,以下是两种简单的解决方法:

方法一:直接生成目标格式的DataFrame

使用pandas.DataFrame.from_dict()方法时,指定orient='index'参数,会自动将字典的键(标的代码)作为DataFrame的索引,子字典的键作为列名:

import pandas as pd

# API返回的JSON数据(注意JSON规范要求双引号,若API返回单引号可先替换)
data = {
    'NFO:AXISBANK23JUNFUT': {'instrument_token': 9156098, 'last_price': 967.55},
    'NFO:BAJAJ-AUTO23JUNFUT': {'instrument_token': 9156354, 'last_price': 4619.15},
    'NFO:BAJAJFINSV23JUNFUT': {'instrument_token': 9179138, 'last_price': 1544.1},
    'NFO:BAJFINANCE23JUNFUT': {'instrument_token': 9179394, 'last_price': 7390.85},
    'NFO:BALRAMCHIN23JUNFUT': {'instrument_token': 9180930, 'last_price': 395.95}
}

# 生成目标结构的DataFrame
df = pd.DataFrame.from_dict(data, orient='index')
print(df)

执行后输出的结构就是:

instrument_token  last_price
NFO:AXISBANK23JUNFUT              9156098      967.55
NFO:BAJAJ-AUTO23JUNFUT            9156354     4619.15
NFO:BAJAJFINSV23JUNFUT            9179138     1544.10
NFO:BAJFINANCE23JUNFUT            9179394     7390.85
NFO:BALRAMCHIN23JUNFUT            9180930      395.95

方法二:对已生成的DataFrame转置

如果已经得到了字段为行、标的为列的原始DataFrame,直接使用.T属性转置即可交换行和列:

# 假设已生成原始格式的DataFrame
df_original = pd.DataFrame(data)
# 转置得到目标结构
df = df_original.T
print(df)

转置后的结果和方法一完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:35:08