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
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
[{‘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’}]