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

如何从Python嵌套列表的嵌套字典中提取指定键值对

提取嵌套列表中的ticker键值对

原始数据

data_list = [
    [{'data': [{'figi': 'BBG00ZTHB2X0', 'name': 'AMERISOURCEBERGEN CORP', 'ticker': 'ABC 0.737 03/15/23', 'exchCode': 'NEW YORK', 'compositeFIGI': None, 'uniqueID': None, 'securityType': 'GLOBAL', 'marketSector': 'Corp', 'shareClassFIGI': None, 'uniqueIDFutOpt': None, 'securityType2': 'Corp', 'securityDescription': 'ABC 0.737 03/15/23'}]}],
    [{'error': 'No identifier found.'}],
    [{'error': 'No identifier found.'}]
]

尝试的代码及无效结果

尝试代码:

keys_to_retain = ['ticker']
print([{key: d[key] for key in keys_to_retain if key in d} for d in data_list])

输出结果:

[{}, {}, {}]

问题根源

你的代码直接遍历外层列表的元素,但外层列表的每个元素是子列表,而非包含ticker的字典;而且ticker实际藏在data键对应的子列表里,层级嵌套没处理到位,自然找不到目标键。

解决方法及代码

需要逐层拆解嵌套结构,按层级遍历:

  1. 遍历外层列表的每个子列表
  2. 遍历子列表中的字典,判断是包含data还是error
  3. 若为data,继续遍历其下的子字典,提取ticker;若为error可选择跳过或保留

提取ticker的核心代码

keys_to_retain = ['ticker']
result = []

for sub_list in data_list:
    for item in sub_list:
        if 'data' in item:
            for entry in item['data']:
                ticker_entry = {k: entry[k] for k in keys_to_retain if k in entry}
                if ticker_entry:
                    result.append(ticker_entry)

print(result)

输出结果

[{'ticker': 'ABC 0.737 03/15/23'}]

(可选)保留所有条目(含error提示)

如果需要同时保留error信息,修改代码如下:

keys_to_retain = ['ticker']
result = []

for sub_list in data_list:
    for item in sub_list:
        if 'data' in item:
            for entry in item['data']:
                ticker_entry = {k: entry[k] for k in keys_to_retain if k in entry}
                if ticker_entry:
                    result.append(ticker_entry)
        elif 'error' in item:
            result.append({'error': item['error']})

print(result)

对应的输出:

[{'ticker': 'ABC 0.737 03/15/23'}, {'error': 'No identifier found.'}, {'error': 'No identifier found.'}]

内容的提问来源于stack exchange,提问作者Yogita Negi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:02:25