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

我需要获取企业名称的价值并将其附加到列表中。

2.我需要获取价值策略并在检查父项后附加到列表中。

3.如果父级是营销名称,则必须添加到 level1。

4.如果父级是广告名称,则必须添加到 level2。

5.如果某个地方 Business 是 [] 我需要传递 None 而不是 Null List

  1. 还需要检查密钥是否存在,对于某些密钥,有可能会丢失策略、业务

示例词典如下

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": [ ]

  }

]


天涯尽头无女友
浏览 99回答 1
1回答

慕哥9229398

你不是从字典中收集数据,你必须选择特定的键来获取它的值。替换这个: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'}]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python