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

Python Pandas:提取字典列表中ohlc嵌套字典转换为DataFrame

解决方法:将嵌套的ohlc字典转换为pandas DataFrame

嘿,作为Python和pandas的新手,这个问题其实很好解决!我来一步步给你讲清楚怎么做。

首先,先确认你的原始数据(我把它整理成更易读的格式了):

data = [
    {
        'tradable': False,
        'mode': 'quote',
        'instrument_token': 256265,
        'last_price': 10546.1,
        'ohlc': {
            'high': 10621.7,
            'low': 10545.3,
            'open': 10616.7,
            'close': 10596.4
        },
        'change': -0.474689517194512
    }
]

方法1:直接提取ohlc字典并转换

这是最直观的方法,适合你现在只有单个数据项的情况:

  1. 先从列表里取出第一个(也是唯一一个)字典,然后提取ohlc对应的嵌套字典
  2. 把这个字典放到一个列表里(因为pandas的DataFrame()构造函数接受可迭代的字典集合)
  3. 传入pd.DataFrame()生成你要的表格

代码示例:

import pandas as pd

# 提取ohlc字典
ohlc_data = data[0]['ohlc']

# 转换为DataFrame
df = pd.DataFrame([ohlc_data])

# 查看结果
print(df)

运行后你会得到这样的输出:

high      low     open    close
0  10621.7  10545.3  10616.7  10596.4

方法2:用pd.json_normalize处理嵌套数据

如果以后你的列表里会有多个这样的字典元素,用json_normalize会更高效,它能自动解析嵌套的JSON结构:

import pandas as pd

# 直接解析整个数据列表,提取ohlc相关的字段
df = pd.json_normalize(data)[['ohlc.high', 'ohlc.low', 'ohlc.open', 'ohlc.close']]

# 可选:把列名的前缀去掉,变成你想要的简洁名称
df.columns = ['high', 'low', 'open', 'close']

print(df)

这个方法的好处是不管你的列表里有1个还是100个数据项,都能一次性处理,不用写循环。

两种方法都能得到你需要的结果,选哪种看你的实际需求就好~

内容的提问来源于stack exchange,提问作者Pradeep Kumar.R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:17:14