Получить совпавший регион для числа в библиотеке фононов номеров 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)
Это потому, что во многих странах разные телефонные коды, но один и тот же часовой пояс.