中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python列表套json字典怎么根據相同的key篩選數據

發布時間:2022-04-24 10:14:18 來源:億速云 閱讀:199 作者:iii 欄目:開發技術

本篇內容介紹了“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篩選數據”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邳州市| 无极县| 大港区| 富蕴县| 宝清县| 廉江市| 五台县| 阿拉善左旗| 平阳县| 宜兰县| 梁山县| 瑞丽市| 广东省| 游戏| 万载县| 隆林| 于都县| 青海省| 丹阳市| 富阳市| 浙江省| 乌兰浩特市| 凤冈县| 柳州市| 江津市| 九龙县| 莆田市| 甘南县| 体育| 化州市| 朝阳县| 长武县| 车险| 汉川市| 顺义区| 石泉县| 高安市| 临西县| 济阳县| 和田县| 奈曼旗|