You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 07:36:08