如何删除字典列表中r_id字段的重复值,兼容列表与字符串类型
原代码问题说明
- 字段名拼写错误:要处理的目标字段是
r_id,代码中误写为record_id,无法正常取值 - 集合转列表逻辑错误:
[set(item["record_id"])]会把整个集合对象作为新列表的唯一元素,而非把集合内的元素转为列表格式 - 场景覆盖不全:没有处理
r_id为字符串类型的情况,无法将字符串统一转为要求的单元素列表格式
可行解决方案
for item in list_of_dict: current_r_id = item["r_id"] # 处理字符串类型的r_id,转单元素列表 if isinstance(current_r_id, str): item["r_id"] = [current_r_id] # 处理列表类型的r_id,执行去重 elif isinstance(current_r_id, list): # 无需保留原顺序可直接用set去重 item["r_id"] = list(set(current_r_id))
如果需要保留列表原有元素的先后顺序,可将列表去重的代码行替换为:
item["r_id"] = list(dict.fromkeys(current_r_id))
运行上述代码后,可完全匹配你给出的期望输出结果。
内容的提问来源于stack exchange,提问作者sruthi
相关产品推荐
相关产品推荐

