python3 處理列表嵌套字典去重


def list_dict(dictlist):
        def function(date):
            return date['ip']

        dictlist_new = []
        for list_dict in dictlist:
            list_dict['backPath'] = [list_dict['backPath']]
            dictlist_new.append(list_dict)
        resource_new = []
        num = 0
        dictlist_new.sort(key=function)
        for dictlist in dictlist_new:
            if num == 0:
                resource_new.append(dictlist)
            else:
                if resource_new[0]['ip'] != dictlist['ip']:
                    old = resource_new[0]
                    del resource_new[0]
                    resource_new.append(dictlist)
                    resource_new.append(old)
                elif resource_new[0]['ip'] == dictlist['ip']:
                    resource_new[0]['backPath'].append(dictlist['backPath'][0])
            num += 1
        return resource_new


resource_list = [
        {"ip": "10.23.13.8", "backPath": '/usr/sap/1111', "user": "root", "PASSWD": "1212121"},
        {"ip": "10.23.13.8", "backPath": "/usr/sap/1112", "user": "root", "PASSWD": "1212121"},
        {"ip": "10.23.13.9", "backPath": "/usr/sap/1111", "user": "root", "PASSWD": "1212121"},
        {"ip": "10.23.13.10", "backPath": "/usr/sap/1111", "user": "root", "PASSWD": "1212121"},
        {"ip": "10.23.13.8", "backPath": "/usr/sap/1113", "user": "root", "PASSWD": "1212121"}
]

print(list_dict(resource_list))


"""
整體思路就是將需要合並的字段改為列表
再通過主鍵的方式校驗重復,如果主鍵重復就將需要合並的字段添加到新的列表中。
不重復則直接返回並將自己添加到一個新列表中
"""


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM