Получить совпавший регион для числа в библиотеке фононов номеров python

Я использую библиотеку телефонных номеров python для разбора и проверки номеров следующим образом:

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

И хотел бы знать, что если есть какой-либо возможный способ получить соответствие 2-буквенного региона для данного номера для дальнейшего использования?

Я попробовал этот метод, который упоминается в 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)

Это потому, что во многих странах разные телефонные коды, но один и тот же часовой пояс.

Другие вопросы по тегам