|
|
|
@ -37,22 +37,22 @@ def safe_divide(numerator, denominator): |
|
|
|
|
return |
|
|
|
|
else: |
|
|
|
|
return numerator / denominator |
|
|
|
|
|
|
|
|
|
def find_region_by_code(code, region_dict): |
|
|
|
|
""" |
|
|
|
|
查询工号对应公司 |
|
|
|
|
未查询到 返回错误工号 |
|
|
|
|
""" |
|
|
|
|
code_str = keep_digits_filter(code) |
|
|
|
|
# 在字典中特别检查 |
|
|
|
|
if code_str in region_dict: |
|
|
|
|
return region_dict[code_str] |
|
|
|
|
|
|
|
|
|
# 使用生成器表达式和next函数尝试找到匹配的前缀 |
|
|
|
|
company = next( |
|
|
|
|
(region_dict.get(code_str[:i]) for i in range(2, min(len(code_str), 5)) if code_str[:i] in region_dict), |
|
|
|
|
"错误工号") |
|
|
|
|
return company |
|
|
|
|
|
|
|
|
|
#只有7位或8位的工号才是合法 |
|
|
|
|
if len(code_str)!=7 and len(code_str) != 8: |
|
|
|
|
return u"其他" |
|
|
|
|
# 如果code以"18"开头,检查前4位 |
|
|
|
|
if code_str.startswith("18"): |
|
|
|
|
return region_dict.get(code_str[:4], u"其他") |
|
|
|
|
# 否则,检查前2位 |
|
|
|
|
else: |
|
|
|
|
return region_dict.get(code_str[:2], u"其他") |
|
|
|
|
def ip_summary_data_format(ip_summary_data): |
|
|
|
|
""" |
|
|
|
|
ip维度数据转换方法 |
|
|
|
|