1

我正在使用 python 的phonenumbers库来解析和验证这样的数字:

>> import phonenumbers
>>> x = phonenumbers.parse("+442083661177")
>>> print x
Country Code: 44 National Number: 2083661177 Leading Zero: False

并且想知道是否有任何可能的方法来获得匹配给定数字的 2 字母区域以供进一步使用?

我试过这种方法,自述文件中提到:

>>> from phonenumbers import timezone
>>> gb_number = phonenumbers.parse("+447986123456")
>>> list(timezone.time_zones_for_number(gb_number))
['Europe/London']

但问题是我找不到使用这些时区解析另一个数字的方法。(phonenumbers.parse("07986123456", 'Europe/London')会抛出异常)

4

1 回答 1

3

您需要先获取国家代码而不是时区:

>>> 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)

这是因为许多国家的拨号代码不同,但时区相同。

于 2016-03-22T05:58:15.697 回答