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

Python如何从嵌套字典中提取users或groups字段的非空列表

实现代码

dict1 = {'Diacto Group': {'id': 7547,
                  'type': 'user',
                  'name': 'Diacto Group',
                  'filters': [{'column': 'Core Area',
                  'values': ['Missiles & Aviation Technology'],
                  'operator': 'EQUALS',
                  'not': False}],
                  'users': [],
                  'virtualUsers': [],
                  'groups': [360305499]},
 'Diacto People': {'id': 7548,
                   'type': 'user',
                   'name': 'Diacto People',
                   'filters': [{'column': 'Core Area',
                   'values': ['Aircraft Company', 'Aviation Technology'],
                   'operator': 'EQUALS',
                   'not': False}],
                   'users': [326197441, 1293859642],
                   'virtualUsers': [],
                   'groups': []},
}

# 列表推导式实现
l1 = [v['users'] if v['users'] else v['groups'] for v in dict1.values()]

print(l1)

运行输出:

[[360305499], [326197441, 1293859642]]

逻辑说明

  • 遍历dict1所有内层嵌套字典值
  • 对每个内层字典,优先判断users字段是否为非空列表:是就直接取users,否则取groups字段
  • 如果需要兼容users和groups都为空的场景,可以加过滤条件,调整为:
l1 = [v['users'] if v['users'] else v['groups'] for v in dict1.values() if v['users'] or v['groups']]

该写法会自动跳过两个字段都为空的外层条目。

内容的提问来源于stack exchange,提问作者Aztec-3x5

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:27:05