Python字典列表转换:分割字段值并提取首个元素
处理Python字典列表:筛选指定字段并格式化name值
直接可用的解决方案
通用型实现(适配任意required_fields)
myList = [ {'name': 'CN=John,Li', 'type': 'Agent', 'isMember': False}, {'name': 'CN=Moses,Somewhere', 'type': 'Worker', 'isMember': True}, {'name': 'CN=David, Something', 'type': 'Agent', 'isMember': False} ] required_fields = ['name', 'isMember'] result = [] for item in myList: new_item = {} for field in required_fields: if field == 'name': # 分割处理name值:先去掉CN=前缀,再取逗号前的部分,清理空格 cleaned_name = item[field].split('=')[1].split(',')[0].strip() new_item[field] = cleaned_name else: new_item[field] = item[field] result.append(new_item) # 输出结果 print(result)
简洁版实现(针对固定字段)
如果required_fields固定为name和isMember,可以用列表推导式简化代码:
result = [ { 'name': item['name'].split('=')[1].split(',')[0].strip(), 'isMember': item['isMember'] } for item in myList ]
逻辑说明
- 遍历原列表:逐个处理每个字典元素
- name字段格式化:
- 用
split('=')分割字符串,取索引1的部分(去掉CN=前缀) - 再用
split(',')分割,取索引0的部分(拿到逗号前的名字) - 最后用
strip()清理可能存在的空格(比如第三个元素里的David, Something中的空格)
- 用
- 筛选字段:只保留
required_fields指定的字段,组装成新字典 - 收集结果:将所有处理后的字典存入新列表
运行后得到的结果和你期望的完全一致:
[ {'name': 'John', 'isMember': False}, {'name': 'Moses', 'isMember': True}, {'name': 'David', 'isMember': False} ]
内容的提问来源于stack exchange,提问作者user3193813
相关产品推荐
相关产品推荐

