如何在Python中获取国家代码与国际号码前缀的映射关系?
获取python-phonenumbers中国家代码到国际前缀的映射
哈哈,我刚好对这个库的结构比较熟悉!你说的没错,python-phonenumbers确实内置了你要的国家代码(如US、GB)到国际电话号码前缀的映射,但这些数据不是存在单个的region_*.py文件里,而是封装在核心模块中,获取起来超简单:
直接用内置字典生成目标映射
库的phonemetadata模块里有一个现成的REGION_CODE_TO_COUNTRY_CODE字典,它的键是两位国家/地区代码(比如'US'),值是对应的国家号码(整数格式,比如1)。你只需要把值转换成带+的字符串,就能得到你想要的格式:
import phonenumbers.phonemetadata as pm # 生成你需要的映射字典 country_code_to_prefix = { region: f"+{code}" for region, code in pm.REGION_CODE_TO_COUNTRY_CODE.items() } # 测试示例 print(country_code_to_prefix['US']) # 输出: +1 print(country_code_to_prefix['GB']) # 输出: +44 print(country_code_to_prefix['DE']) # 输出: +49
补充说明
- 这个字典覆盖了所有库支持的国家/地区,不用担心遗漏。如果要验证某个地区是否存在,直接用
'XX' in pm.REGION_CODE_TO_COUNTRY_CODE检查即可。 - 你看到的
shortdata/region_DE.py这类文件是自动生成的地区元数据,主要存储该地区的号码格式、运营商规则等细节,而全局的国家代码映射是统一放在phonemetadata模块里的,方便全局调用。
内容的提问来源于stack exchange,提问作者Kurt Peek
相关产品推荐
相关产品推荐

