为了账号安全,请及时绑定邮箱和手机立即绑定

如何从嵌套字典中提取元素

如何从嵌套字典中提取元素

天涯尽头无女友 2023-05-09 15:04:59
我需要获取企业名称的价值并将其附加到列表中。2.我需要获取价值策略并在检查父项后附加到列表中。3.如果父级是营销名称,则必须添加到 level1。4.如果父级是广告名称,则必须添加到 level2。5.如果某个地方 Business 是 [] 我需要传递 None 而不是 Null List还需要检查密钥是否存在,对于某些密钥,有可能会丢失策略、业务示例词典如下searchtest = [{'_index': 'newtest',  '_type': '_doc',  '_id': '100',  '_score': 1.0,  '_source': {'id': '100',   'name': 'A',   'Business': [{'id': '7', 'name': 'Enterprise'},    {'id': '8', 'name': 'Customer'}],   'policies': [{'id': '332',     'name': 'Second division',     'parent': 'Marketing'},    {'id': '3323', 'name': 'First division', 'parent': 'Marketing'}]}}, {'_index': 'newtest',  '_type': '_doc',  '_id': '101',  '_score': 1.0,  '_source': {'id': '101',   'name': 'B',   'Business': [{'id': '7'},    {'id': '8', 'name': 'Customer'}],   'policies': [{'id': '332',     'name': 'Second division',     'parent': 'Marketing'},    {'id': '3323', 'name': 'First division', 'parent': 'Marketing'}]}}]预计出来[  {    "id": "100",    "name": "A",    "Business": ["Enterprise", "Customer"],    "level1": ['Second division', 'First division'],    "level2": [ ]  },  {    "id": "101",    "name": "B",    "Business": ["Enterprise", "Customer"],    "level1": ['Second division', 'First division'],    "level2": [ ]  }]
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

你不是从字典中收集数据,你必须选择特定的键来获取它的值。


替换这个:


for el in lst:

        d = {

            'id': el['_source']['id'],

            'name': el['_source']['name'],

            'Business': [],

            'level1': [],

            'level2': []

        }

有了这个:


for el in data:

        d = {

            'id'       : el['_source']['id'],

            'name'     : el['_source']['name'],

            'Business' : [name['name'] for name in el['_source']['Business']],

            'level1'    : [name['name'] for name in el['_source']['policies']],

            'level2'   : []

        }

输出:


[   {   'Business': ['Enterprise', 'Customer'],

        'id': '100',

        'level1': ['Second division', 'First division'],

        'level2': [],

        'name': 'A'},

    {   'Business': ['Enterprise', 'Customer'],

        'id': '101',

        'level1': ['Second division', 'First division'],

        'level2': [],

        'name': 'B'}]


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信