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

Python解析字典JSON筛选全局/项目Admin角色用户方法

筛选两类Admin角色用户的实现方案

核心判断逻辑:只要用户满足globalRole字段值为Admin、tprojectRole字段值为Admin两个条件任意一个,即可纳入结果集,不需要两个条件同时满足。

可直接复用的实现代码

做了字段缺失容错处理,避免异常数据导致脚本崩溃:

def filter_admin_users(user_list: list[dict]) -> list[dict]:
    admin_users = []
    for user in user_list:
        # 字段不存在时默认返回空字符串,避免KeyError
        is_global_admin = user.get("globalRole", "") == "Admin"
        is_project_admin = user.get("tprojectRole", "") == "Admin"
        # 任意一个Admin角色满足条件即加入结果
        if is_global_admin or is_project_admin:
            admin_users.append(user)
    return admin_users

如果偏好更简洁的写法,可以直接用列表推导式实现相同逻辑:

admin_users = [
    user for user in user_list
    if user.get("globalRole", "") == "Admin" or user.get("tprojectRole", "") == "Admin"
]

3种场景验证样例

对应提到的三类用户结构做测试,测试数据如下:

test_users = [
    # 场景1:仅全局角色为Admin
    {"userId": 1, "userName": "zhangsan", "globalRole": "Admin", "tprojectRole": "Viewer"},
    # 场景2:仅项目角色为Admin
    {"userId": 2, "userName": "lisi", "globalRole": "Viewer", "tprojectRole": "Admin"},
    # 场景3:全局+项目角色均为Admin
    {"userId": 3, "userName": "wangwu", "globalRole": "Admin", "tprojectRole": "Admin"},
    # 普通用户,预期被过滤
    {"userId": 4, "userName": "zhaoliu", "globalRole": "Viewer", "tprojectRole": "Viewer"}
]

result = filter_admin_users(test_users)

预期输出

筛选完成后result的内容如下,完全覆盖三类符合要求的Admin用户,过滤掉普通用户:

[
    {"userId": 1, "userName": "zhangsan", "globalRole": "Admin", "tprojectRole": "Viewer"},
    {"userId": 2, "userName": "lisi", "globalRole": "Viewer", "tprojectRole": "Admin"},
    {"userId": 3, "userName": "wangwu", "globalRole": "Admin", "tprojectRole": "Admin"}
]

常见代码逻辑问题修正

  • 不要把判断条件的or写成and:如果用and连接两个判断条件,只会筛选出双角色均为Admin的用户,漏掉仅单角色为Admin的符合要求的用户
  • 不要用user["globalRole"]这种硬索引的方式取值:如果某条用户数据缺失对应字段,会直接触发KeyError导致脚本中断,dict.get()方法的容错性更适合处理结构不完全固定的JSON解析结果
  • 如果角色字段存在嵌套结构(比如嵌套在roleInfo父字段下),把取值逻辑调整为逐层get即可:user.get("roleInfo", {}).get("globalRole", "") == "Admin",避免父级字段缺失时触发报错

内容的提问来源于stack exchange,提问作者ckmb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:39:27