Python 如何使用列表中的值获取字典中特定键的计数

Python 如何使用列表中的值获取字典中特定键的计数,python,list,dictionary,Python,List,Dictionary,我在字典里的内容如下 我需要知道1的计数。业务领域及其价值计数 名称及其数值计算 我想知道商业区的masterid和名称,这是所有的名字 预期结果如下 [ { "name": "BusinessArea", "values": [ { "name": "Accounting", "count": "2&q

我在字典里的内容如下

我需要知道1的计数。业务领域及其价值计数

  • 名称及其数值计算
  • 我想知道商业区的masterid和名称,这是所有的名字

    预期结果如下

    [
      {
        "name": "BusinessArea",
        "values": [
          {
            "name": "Accounting",
            "count": "2"
          },
          {
            "name": "Research",
            "count": "2"
          },
          {
            "name": "Engineering",
            "count": "1"
          }
        ]
      },
      {
        "name": "Designation",
        "values": [
          {
            "name": "L1",
            "count": "3"
          },
          {
            "name": "l2",
            "count": "2"
          }
        ]
      }
    ]
    
    masterid 1、2和3有L1和masterid 1和2 L1:3有L2,L2:2类似于下面的内容(不完全是您提到的输出,但非常接近..)

    输出

    defaultdict(<class 'int'>, {'Accounting': 2, 'Research': 2, 'Engineering': 1})
    defaultdict(<class 'int'>, {'L1': 3, 'L2': 2})
    
    defaultdict(,{'Accounting':2,'Research':2,'Engineering':1})
    defaultdict(,{'L1':3,'L2':2})
    
    from collections import defaultdict
    
    test = [{'masterid': '1', 'name': 'Group1', 'BusinessArea': ['Accounting', 'Research'], 'Designation': ['L1', 'L2']},
            {'masterid': '2', 'name': 'Group1', 'BusinessArea': ['Research', 'Accounting'],
             'Role': [{'id': '5032', 'name': 'Tester'}, {'id': '5033', 'name': 'Developer'}], 'Designation': ['L1', 'L2']},
            {'masterid': '3', 'name': 'Group1', 'BusinessArea': ['Engineering'],
             'Role': [{'id': '5032', 'name': 'Developer'}, {'id': '5033', 'name': 'Developer', 'parentname': ''}],
             'Designation': ['L1']}]
    
    b_area = defaultdict(int)
    des = defaultdict(int)
    for entry in test:
        for val in entry['BusinessArea']:
            b_area[val] += 1
        for val in entry['Designation']:
            des[val] += 1
    print(b_area)
    print(des)
    
    defaultdict(<class 'int'>, {'Accounting': 2, 'Research': 2, 'Engineering': 1})
    defaultdict(<class 'int'>, {'L1': 3, 'L2': 2})