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

如何从Binance期货API返回的杠杆bracket数据中提取initialLeverage?

解决Binance期货杠杆档位数据提取initialLeverage的KeyError问题

你遇到的KeyError本质是没有正确处理brackets列的「列表嵌套字典」结构——直接对整个列做json_normalize或索引会因为层级不对报错。以下是两种可靠的解决方法:

方法一:拆分列表+展开字典(保留所有字段)

先把brackets里的列表拆成单独行,再展开每个字典的字段,适合需要完整档位数据的场景:

import pandas as pd
from binance.client import Client

# 初始化客户端并获取数据
client = Client("你的API_KEY", "你的API_SECRET")
raw_data = client.futures_leverage_bracket()
df = pd.DataFrame(raw_data)

# 1. 将brackets列的列表拆分为单独行
df_exploded = df.explode("brackets", ignore_index=True)
# 2. 展开字典列为独立字段
df_brackets = pd.json_normalize(df_exploded["brackets"])
# 3. 合并原表的其他字段(如symbol)和展开后的档位数据
df_final = pd.concat([df_exploded.drop("brackets", axis=1), df_brackets], axis=1)

# 提取initialLeverage列
initial_leverage = df_final["initialLeverage"]

方法二:直接提取目标字段(仅保留initialLeverage)

如果只需要每个交易对对应的所有杠杆档位数值,用apply遍历列表提取即可:

# 直接提取每个symbol对应的所有initialLeverage值
df["initialLeverage"] = df["brackets"].apply(lambda x: [item["initialLeverage"] for item in x])
# 若需要拆成每行对应一个档位,继续用explode
df_exploded = df.explode("initialLeverage", ignore_index=True)

容错处理(避免个别异常数据报错)

如果担心API返回的个别档位字典缺失字段,改用get()方法提取:

df["initialLeverage"] = df["brackets"].apply(lambda x: [item.get("initialLeverage", None) for item in x])

内容的提问来源于stack exchange,提问作者Timur Anitsky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:32:15