python列表套json字典怎么根据相同的key筛选数据
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,本篇内容介绍了"python列表套json字典怎么根据相同的key筛选数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细
千家信息网最后更新 2024年12月13日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安全错误
数据库的锁怎样保障安全
软件开发人力成本估算
无线网络如何保证网络安全
数据库查询查询最大连接数
ftp服务器工具
北京高端云控软件开发商
数据库中的文件怎样打开
网络安全和个人便利如何平衡
剑灵南天国服务器
戴尔塔式服务器维修服务
手游lol国际服连接服务器错误
有网络安全的技术学校
互联网科技资讯榜
网络安全被动防御和主动防御
dab格式转com的软件开发
网络安全稿子800
数据库添加修改
织梦安装 数据库主机
回龙网络安全宣传
中山企帮网络技术有限公司
nar数据库详解
深圳能源供应链服务软件开发商
论文网络安全的题目
北京智能云广播系统服务器
中国全国省市区数据库
网络安全开幕式主持稿
广东互联网软件开发定制费用
迷你世界的云服务器在哪里开
北京数据库日志审计报价
网络安全生产保证书
网络技术转让要求