2016-03-22 7 views
1

Я использую phonenumbers библиотеки питона для анализа и проверки номера, как это:Получить согласованный регион для ряда в библиотеке номера телефонов питона

>> 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') будет сгенерировано исключение)

ответ

2

Вам нужно получить код страны первый, а не часовой пояс:

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

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