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

如何从API返回的字典数据中提取token与tsym构建新字典

问题:从经纪商API返回的字典中提取指定键值对构建新字典

我通过经纪商API获取到以下类型为<class 'dict'>、len(my_dict)返回1的字典数据:

{'1': [{'exch': 'NFO', 'token': '43214', 'tsym': 'NIFTY07DEC23C20700', 'weekly': 'W1', 'dname': 'NIFTY 07DEC23 20700 CE ', 'instname': 'OPTIDX', 'pp': '2', 'ls': '50', 'ti': '0.05', 'optt': 'CE'}, {'exch': 'NFO', 'token': '43218', 'tsym': 'NIFTY07DEC23P20700', 'weekly': 'W1', 'dname': 'NIFTY 07DEC23 20700 PE ', 'instname': 'OPTIDX', 'pp': '2', 'ls': '50', 'ti': '0.05', 'optt': 'PE'}, {'exch': 'NFO', 'token': '43206', 'tsym': 'NIFTY07DEC23C20600', 'weekly': 'W1', 'dname': 'NIFTY 07DEC23 20600 CE ', 'instname': 'OPTIDX', 'pp': '2', 'ls': '50', 'ti': '0.05', 'optt': 'CE'}, {'exch': 'NFO', 'token': '43207', 'tsym': 'NIFTY07DEC23P20600', 'weekly': 'W1', 'dname': 'NIFTY 07DEC23 20600 PE ', 'instname': 'OPTIDX', 'pp': '2', 'ls': '50', 'ti': '0.05', 'optt': 'PE'}]}

希望从中提取'token'和'tsym'键值对,构建一个以token值为键、tsym值为值的新字典,示例如下:

new_dict = {'43214':'NIFTY07DEC23C20700', '43218':'NIFTY07DEC23P20700', '43206': 'NIFTY07DEC23C20600', '43207': 'NIFTY07DEC23P20600'}

解决方案

方法一:简洁的字典推导式

直接通过字典推导式遍历原始数据列表,提取所需键值对:

# 假设原始字典变量名为my_dict
new_dict = {item['token']: item['tsym'] for item in my_dict['1']}

方法二:循环遍历构建(适合新手理解)

通过循环逐个提取并添加到新字典:

new_dict = {}
# 遍历原始字典中'1'对应的合约列表
for item in my_dict['1']:
    # 将token作为键、tsym作为值存入新字典
    new_dict[item['token']] = item['tsym']

通用写法(无需固定键名)

如果不确定原始字典的唯一键是否为'1',可以用以下方式获取列表,兼容性更强:

# 获取原始字典中唯一的列表数据
contract_list = next(iter(my_dict.values()))
# 构建新字典
new_dict = {item['token']: item['tsym'] for item in contract_list}

内容的提问来源于stack exchange,提问作者Scalper Vegeta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:27:12