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

Pandas中如何拆分API返回的嵌套JSON数组为指定列的DataFrame

解决方法

情况1:直接从API响应的蜡烛数据创建DataFrame

如果你的API响应是包含candles键的字典,先提取蜡烛列表,再用它创建DataFrame并指定列名:

import pandas as pd

# 假设API响应已解析为字典格式
api_response = {
    "candles": [
        ["2021-04-29T09:15:00", 1488.85, 1503.65, 1461, 1471.65, 12002248],
        ["2021-04-30T09:15:00", 1450, 1450, 1407.65, 1412.9, 17538562]
    ]
}

# 提取蜡烛数据列表
candles_list = api_response["candles"]

# 创建DataFrame
df = pd.DataFrame(candles_list)

# 自定义列名(对应时间戳、开盘价、最高价、最低价、收盘价、成交量)
df.columns = ["timestamp", "open", "high", "low", "close", "volume"]

# 可选:将时间戳列转为datetime类型
df["timestamp"] = pd.to_datetime(df["timestamp"])

情况2:已生成单列表格,拆分嵌套数组为多列

如果已经得到只有一列的DataFrame(每一行是嵌套子数组),可以通过tolist()方法将列值展开为二维列表,再重新创建DataFrame:

import pandas as pd

# 假设已有单列表格
single_col_df = pd.DataFrame({
    "candles": [
        ["2021-04-29T09:15:00", 1488.85, 1503.65, 1461, 1471.65, 12002248],
        ["2021-04-30T09:15:00", 1450, 1450, 1407.65, 1412.9, 17538562]
    ]
})

# 拆分嵌套数组为多列
df = pd.DataFrame(single_col_df["candles"].tolist())

# 指定自定义列名
df.columns = ["timestamp", "open", "high", "low", "close", "volume"]

执行后,df会包含6个独立列,分别对应你指定的名称。

内容的提问来源于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.22 08:19:58