获取python phonenumbers 库中数字的匹配区域
Posted
技术标签:
【中文标题】获取python phonenumbers 库中数字的匹配区域【英文标题】:Get matched region for a number in python's phonenumbers library 【发布时间】:2016-03-22 05:34:51 【问题描述】:我正在使用 python 的 phonenumbers 库来解析和验证这样的数字:
>> import phonenumbers
>>> x = phonenumbers.parse("+442083661177")
>>> print x
Country Code: 44 National Number: 2083661177 Leading Zero: False
并且想知道是否有任何可能的方法来获得匹配的 2 字母 Region 给定数字以供进一步使用?
这个方法我试过了,Readme里有提到:
>>> from phonenumbers import timezone
>>> gb_number = phonenumbers.parse("+447986123456")
>>> list(timezone.time_zones_for_number(gb_number))
['Europe/London']
但问题是我找不到使用这些时区解析另一个数字的方法。 (phonenumbers.parse("07986123456", 'Europe/London')
会抛出异常)
【问题讨论】:
【参考方案1】:您需要先获取国家/地区代码而不是时区:
>>> gb_number = phonenumbers.parse("+447986123456")
>>> cc = phonenumbers.region_code_for_number(gb_number)
>>> cc
'GB'
>>> phonenumbers.parse("07986123456", cc)
PhoneNumber(country_code=44, national_number=7986123456, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=None, preferred_domestic_carrier_code=None)
这是因为许多国家的拨号代码不同,但时区相同。
【讨论】:
以上是关于获取python phonenumbers 库中数字的匹配区域的主要内容,如果未能解决你的问题,请参考以下文章
Scala - 将字符串数组转换为Set [PhoneNumbers]
如何设置 Twilio To phoneNumber 获取此号码作为 Spring Boot 中的用户输入