Python phonenumbers库解析无+号手机号报错及归属国查询方案咨询
解决方法
方案1:直接补全+号前缀(最适配你当前的号码场景)
你的号码本身已经包含国际国家码前缀,仅缺少+号作为国际号码标识,直接在解析前拼接前缀即可:
import phonenumbers from phonenumbers import geocoder # 原始号码处理逻辑 raw_num = "96650072xxxx" # 避免重复添加+号做判断 processed_num = f"+{raw_num}" if not raw_num.startswith("+") else raw_num try: query = phonenumbers.parse(processed_num, None) print(geocoder.description_for_number(query, "en")) print(query.country_code) except phonenumbers.phonenumberutil.NumberParseException as e: print(f"号码解析失败:{e}")
补充说明
- 你之前遇到的
Missing or invalid default region报错,是因为phonenumbers.parse第二个参数为None时,仅支持解析带+号的国际格式号码;如果你的号码是不带国家码的国内格式号码,才需要传入第二个参数为对应国家的两位ISO码(比如中国传"CN",美国传"US") - 你的示例号码全部是带国家码的国际号码格式,补+号是成本最低的适配方案,不需要额外的区域配置
内容的提问来源于stack exchange,提问作者Divyank
相关产品推荐
相关产品推荐

