

发布于 2025-06-01 11:15更新于 2025-07-12 08:40825浏览一键拆分收件信息,将姓名、手机号、省、市、区、全部自动识别拆分,输出json
支持自动补充缺失的省/市,支持虚拟号码带4位分机号
原理:利用Python库JioNLP自动识别提取
完整的收件信息
传入收件信息:
过客 13333333333 湖北省武汉市洪山区A街道某小区B栋2楼
输出结果:
{'name': '过客', 'phone': '13333333333', 'address': {'province': '湖北省', 'city': '武汉市', 'county': '洪山区', 'detail': 'A街道某小区B栋2楼', 'full_location': '湖北省武汉市洪山区A街道某小区B栋2楼', 'orig_location': '过客 13333333333 湖北省武汉市洪山区A街道某小区B栋2楼'}}

缺少省和市的收件信息
传入收件信息:
过客 13333333333 武昌区A街道某小区B栋2楼
输出结果:
{'name': '过客', 'phone': '13333333333', 'address': {'province': '湖北省', 'city': '武汉市', 'county': '武昌区', 'detail': 'A街道某小区B栋2楼', 'full_location': '湖北省武汉市武昌区A街道某小区B栋2楼', 'orig_location': '过客 13333333333 武昌区A街道某小区B栋2楼'}}

# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
import re
import jionlp as jio
def main(收件信息: str) -> dict:
result = {}
# 使用正则表达式匹配姓名和多格式手机号
name_pattern = r"([\u4e00-\u9fa5]+)"
phone_pattern = r"(\d{11}(?:-\d{4})?)"
# 提取姓名
name_match = re.search(name_pattern, 收件信息)
result["name"] = name_match.group(1) if name_match else None
# 提取电话号码
phone_match = re.search(phone_pattern, 收件信息)
result["phone"] = phone_match.group(1) if phone_match else None
# 解析地址信息
try:
parse_result = jio.parse_location(收件信息)
result["address"] = parse_result
except Exception as e:
print(f"解析地址信息时发生错误: {e}")
result["address"] = None
return result新建py,在主流程中设置流程参数,并调用模块传参即可
