2016-03-22 21 views
1

Ich Python ist mit phonenumbers Bibliothek zu analysieren und zu validieren Zahlen wie folgt aus:Get abgestimmt Region für eine Reihe in Python Telefonnummern Bibliothek

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

Und wollte das wissen, ob es eine Möglichkeit besteht darin, die angepasst zu bekommen die 2-Buchstaben Region für eine gegebene Nummer für die weitere Verwendung?

Ich habe diese Methode versucht, die Readme-Datei erwähnt wird:

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

Aber das Problem ist, ich nicht einen Weg finden, kann eine andere Nummer mit Hilfe dieser Zeitzonen zu analysieren. (phonenumbers.parse("07986123456", 'Europe/London') eine Exception aus)

Antwort

2

Sie benötigen den Ländercode zuerst eher als die Zeitzone zu erhalten:

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

Das ist, weil viele Länder unterschiedliche Wahlcodes haben aber die gleiche Zeitzone.