python列表套json字典怎么根据相同的key筛选数据
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容介绍了"python列表套json字典怎么根据相同的key筛选数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细
千家信息网最后更新 2025年01月19日python列表套json字典怎么根据相同的key筛选数据
本篇内容介绍了"python列表套json字典怎么根据相同的key筛选数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
前言:
工作中遇到以下小问题,解决方法如下,可能比较暴力,暂时留档,再进行优化。
要求:将列表中json的 ‘id’ 字段值相同的数据,根据 type的值,按照一定的优先级次序排列,列表中仅保留优先级最高的type
。
测试用例:
list1 示例数据:
type优先级列表:[6, 4, 2, 5, 8, 3, 7, 1] (依次递减,6优先级最高,1优先级最低)
draw_data = [ {'geometry':{"coordinates":[121.87635833333333, 30.86567777777778]},"properties":{'type':'8'}, "id": "03N3211"}, {'geometry':{"coordinates":[121.87635833333333, 30.86567777777778]},"properties":{'type':'5'}, "id": "01N2234"}, {'geometry':{"coordinates":[121.87635833333333, 30.86567777777778]},"properties":{'type':'8'}, "id": "03N3211"}, {'geometry':{"coordinates":[121.8758861111111, 30.866086111111112]},"properties":{'type':'32'}, "id": "01N2234"}, {'geometry':{"coordinates":[121.87635833333333, 30.86567777777778]},"properties":{'type':'8'}, "id": "09N1111"}, {'geometry':{"coordinates":[121.87635833333333, 30.86567777777778]},"properties":{'type':'11'}, "id": "03N3211"}, {'geometry':{"coordinates":[121.87635833333333, 30.86567777777778]},"properties":{'type':'2'}, "id": "09N1111"}, {'geometry':{"coordinates":[121.87705277777778, 30.86705]}, "properties": {'type': '2'}, "id": "01N2234"} ]
以上结果应该为:
draw_data = [ {'geometry':{"coordinates":[121.8758861111111, 30.866086111111112]},"properties":{'type':'32'}, "id": "01N2234"}, {'geometry':{"coordinates":[121.87635833333333, 30.86567777777778]},"properties":{'type':'8'}, "id": "09N1111"}, {'geometry':{"coordinates":[121.87635833333333, 30.86567777777778]},"properties":{'type':'11'}, "id": "03N3211"}, ]
def removeduplicate(self, list1, priority=None): """ 列表套字典去重复, 筛选相同组串id优先级最高的类型 :param list1: 输入一个有重复值的列表 :priority : 优先级列表 :return: 返回一个去掉重复的列表 """ sort_dict = {'6': 100, '4': 99, '2': 98, '5': 97, '8': 96, '3': 95, '7': 94, '1': 93} # self.types 颜色表按优先级排序 newlist = [] print("list1:", list1) for ind_i, i in enumerate(list1): # 先遍历原始字典 flag = True if newlist == []: # 如果是空的列表就不会有重复,直接往里添加 pass else: for ind_j, j in enumerate(newlist): j_id = j['id'] if j_id == i['id']: # 相同id if sort_dict[j['properties']['type']] <= sort_dict[i['properties']['type']]: newlist[ind_j] = i else: flag=False else: # 不相等,id可能已经出现过 for ind_li, li in enumerate(newlist): if i['id'] == li['id']: if sort_dict[i['properties']['type']] >= sort_dict[li['properties']['type']]: newlist[ind_li] = i else: flag = False if flag: newlist.append(i) return newlist
"python列表套json字典怎么根据相同的key筛选数据"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
优先级
相同
字典
数据
最高
内容
更多
知识
原始
实用
最低
学有所成
接下来
前言
困境
字段
实际
情况
文章
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津静海凶宅数据库
方舟服务器无限资源是什么意思
南京泽巍软件开发有限公司
网络安全教育讲座 新闻
高新区网络安全科技馆开关门时间
天津智能软件开发诚信经营
网络安全培训意见建议
网络安全八个习惯
天翼云服务器ip段
德惠智能化网络技术咨询口碑推荐
湖北盛天网络技术股份有限
为sql缓存通知启用数据库
云数据库模糊搜索
服务器多网卡 linux
软件开发有什么标准
登录谷歌商店与谷歌服务器通信
贵州运营网络安全工程费用
数据库中事务的概念
网络安全公司私募
存储服务器能用多久
linux检查服务器所有账号
internet邮件服务器域名
全球顶尖网络安全厂商
网络安全我参与手抄报艺术字体
物流与网络安全
单位网络安全事件应急预案意见
软件开发培训班需要多少钱
打印机服务器是干什么的
网络安全方面政府信息
mysql数据库d盘