从 Python 嵌套列表中的嵌套字典中检索特定键值对

Retrieve specific key value pair from nested dictionary within nested list in Python

提问人:Yogita Negi 提问时间:10/28/2022 更新时间:10/28/2022 访问量:362

问:

我在下面嵌套列表,我只想从这个列表中检索键值对 即 - 'ticker': 'ABC 0.737 03/15/23'

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 list])

我得到了以下回复

[{}, {}, {}]
[{}, {}, {}]
[{}, {}, {}]
[{}, {}, {}]

任何正确方向的帮助将不胜感激。谢谢

python python-3.x list-comprehension 嵌套列表 字典-理解

评论


答:

0赞 FG94 10/28/2022 #1

如果您的列表始终具有相同的结构,则只需一步一步地进行,直到到达要从中提取数据的字典。

下面是一个示例:

ls = [[{'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.'}]]


def key_to_retrain(key):

    value = ls[0][0]['data'][0][key]
    return value

print(key_to_retrain('ticker'))

输出:

ABC 0.737 03/15/23