返回教程identity.py
下载原文件
"""只合并已确认的完整号码代号;未知身份各条保留。"""
import re
def person_key(row, line=None):
value = (row.get('手机号') or '').strip()
return value if re.fullmatch(r'TEL-\d+', value) else '待核:' + str(row.get('申请编号') or line)
def group_people(rows):
groups = {}
for line, row in enumerate(rows, 2):
groups.setdefault(person_key(row, line), []).append(row)
return groups
def dedupe(rows, key='手机号'):
"""兼容旧调用;跨阶段统计应使用group_people,不擅选主申请。"""
seen, kept, duplicates, unsure = {}, [], [], []
for row in rows:
value = (row.get(key) or '').strip()
if not re.fullmatch(r'TEL-\d+', value):
unsure.append(row); kept.append(row)
elif value in seen:
duplicates.append((seen[value], row))
else:
seen[value] = row; kept.append(row)
return kept, duplicates, unsure