• python实现 合并相同编号的证书名称


    合并相同企业资质编号的资质证书名称

    import copy
    # 合并相同企业资质编号的资质证书名称
    def same_certId_def(Certificate_list):
    #     try:
        Certificate_list_inter=copy.deepcopy(Certificate_list)
    #     if type(Certificate_list_inter[0]["certName"])==list:
        samelist_index=[]
        samelist=[]
        certId_total=[i["certId"] for i in Certificate_list_inter]#证书列表
        if len(set(certId_total))<len(certId_total):#如果证书列表有重复
            chongfulist=[]#去重列表
            chongfulist_index=[]#去重列表元素在certId_total的索引
            #找重
            for index in range(len(certId_total)):#循环取证书列表的索引
                if certId_total[index] not in chongfulist:#如果元素不在去重列表里
                    chongfulist.append(certId_total[index])#添加到去重后列表
                    chongfulist_index.append(index)
                elif certId_total[index] in chongfulist:#如果元素在去重列表里
    #                 print("有重复")
                    end_first_index=chongfulist_index[chongfulist.index(certId_total[index])]#就找到去重列表里那个被重复的元素在原列表的位置
    #                 print(end_first_index)
                    #并且把后续重复元素的certName合并到被重复的元素的certName里
                    samelist_index.append(index)#certId_total.index(certId_total[index]))
    #         print(samelist_index)
            for k in samelist_index:#range(len(Certificate_list_inter))
                if Certificate_list_inter[k]['certId']==Certificate_list_inter[end_first_index]['certId']:
                    samelist.append(Certificate_list_inter[k]["certName"])
            Certificate_list_inter[end_first_index]["certName"]=[Certificate_list_inter[end_first_index]["certName"]]+samelist
            if len(set(samelist_index))<len(samelist_index):  
                print("救命,这个列表有两个证书重复")     
                return Certificate_list
            Certificate_updatelist_inter=[]
            for l in range(len(Certificate_list_inter)):
                if l not in samelist_index:
                    Certificate_updatelist_inter.append(Certificate_list_inter[l])
    #             print(l)
    #             Certificate_list_inter.pop(l)
            return Certificate_updatelist_inter
    
        else:
            return Certificate_list
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    def same_certId_def(Certificate_list):
        try:
            ls_df = pd.DataFrame(Certificate_list)
            ls_group = ls_df.groupby("certId").apply(lambda x: list(x["certName"]))
            group_dict = dict(ls_group)
            ls_df["certName"] = ls_df["certId"]
            ls_df["certName"] = ls_df["certName"].map(group_dict)
            ls_df = ls_df.drop_duplicates("certId")
            ls_df = ls_df[['certId', 'organDate', 'endDate', 'certType', 'organName', 'certName']]
            ls_df.columns = ['certId', 'pubDate', 'endDate', 'certType', 'pubDepartment', 'certName']
            l_dict = ls_df.to_dict(orient='records')
            return l_dict
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    合并前

    [{‘certType’: ‘建筑业企业资质’, ‘certName’: ‘建筑装修装饰工程专业承包二级’, ‘organDate’: ‘2022-07-07’, ‘endDate’: ‘2027-07-06’, ‘organName’: ‘北京市住房和城乡建设委员会’, ‘certId’: ‘D311343100’, ‘corpName’: ‘北京华通信科信息技术有限公司’, ‘corpCode’: ‘91110105095353545H’},

    {‘certType’: ‘建筑业企业资质’, ‘certName’: ‘特种工程(结构补强)专业承包不分等级’, ‘organDate’: ‘2022-07-07’, ‘endDate’: ‘2027-07-06’, ‘organName’: ‘北京市住房和城乡建设委员会’, ‘certId’: ‘D311343100’, ‘corpName’: ‘北京华通信科信息技术有限公司’, ‘corpCode’: ‘91110105095353545H’},
    {‘certType’: ‘建筑业企业资质’, ‘certName’: ‘消防设施工程专业承包二级’, ‘organDate’: ‘2022-07-07’, ‘endDate’: ‘2027-07-06’, ‘organName’: ‘北京市住房和城乡建设委员会’, ‘certId’: ‘D311343100’, ‘corpName’: ‘北京华通信科信息技术有限公司’, ‘corpCode’: ‘91110105095353545H’},
    {‘certType’: ‘建筑业企业资质’, ‘certName’: ‘电子与智能化工程专业承包二级’, ‘organDate’: ‘2022-07-07’, ‘endDate’: ‘2027-07-06’, ‘organName’: ‘北京市住房和城乡建设委员会’, ‘certId’: ‘D311343100’, ‘corpName’: ‘北京华通信科信息技术有限公司’, ‘corpCode’: ‘91110105095353545H’},
    {‘certType’: ‘建筑业企业资质’, ‘certName’: ‘防水防腐保温工程专业承包二级’, ‘organDate’: ‘2022-07-07’, ‘endDate’: ‘2027-07-06’, ‘organName’: ‘北京市住房和城乡建设委员会’, ‘certId’: ‘D311343100’, ‘corpName’: ‘北京华通信科信息技术有限公司’, ‘corpCode’: ‘91110105095353545H’}]

    合并后

    [{‘certType’: ‘建筑业企业资质’, ‘certName’: [‘建筑装修装饰工程专业承包二级’, ‘特种工程(结构补强)专业承包不分等级’, ‘消防设施工程专业承包二级’, ‘电子与智能化工程专业承包二级’, ‘防水防腐保温工程专业承包二级’], ‘organDate’: ‘2022-07-07’, ‘endDate’: ‘2027-07-06’, ‘organName’: ‘北京市住房和城乡建设委员会’, ‘certId’: ‘D311343100’, ‘corpName’: ‘北京华通信科信息技术有限公司’, ‘corpCode’: ‘91110105095353545H’}]

  • 相关阅读:
    jQuery 安装
    记录如何用php做一个网站访问计数器的方法
    Mybatis传参parameterType为List<Map>
    vscode插件开发(四)Webview(1)
    EMQX安装与使用文档
    5个实用的PyCharm插件
    【安全】经典面试题总结-史上最全面试题思维导图总结(2022最新版)
    GLSL ES着色器 精度限定字
    算法基础-数学知识-高斯消元、求组合数
    Linux--进程间通信
  • 原文地址:https://blog.csdn.net/weixin_45934622/article/details/126815709