Die phonenumbers
Bibliothek ist eher unter dokumentiert; Stattdessen raten wir Ihnen, sich das ursprüngliche Google-Projekt für Unittests anzusehen, um mehr über Funktionalität zu erfahren.
Die PhoneNumberUtilTest
unittests scheint Ihren spezifischen Anwendungsfall abzudecken; Zuordnung des Landteils einer Telefonnummer zu einer bestimmten Region unter Verwendung der getRegionCodeForCountryCode()
function. Es gibt auch eine getRegionCodeForNumber()
function, die das Ländercode-Attribut einer geparsten Nummer zuerst zu extrahieren scheint.
Und in der Tat gibt es entsprechende phonenumbers.phonenumberutil.region_code_for_country_code()
und phonenumbers.phonenumberutil.region_code_for_number()
Funktionen das gleiche in Python zu tun:
import phonenumbers
from phonenumbers.phonenumberutil import (
region_code_for_country_code,
region_code_for_number,
)
pn = phonenumbers.parse('+442083661177')
print(region_code_for_country_code(pn.country_code))
Demo:
>>> import phonenumbers
>>> from phonenumbers.phonenumberutil import region_code_for_country_code
>>> from phonenumbers.phonenumberutil import region_code_for_number
>>> pn = phonenumbers.parse('+442083661177')
>>> print(region_code_for_country_code(pn.country_code))
GB
>>> print(region_code_for_number(pn))
GB
Der resultierende Regionalcode ist ein 2-stelliger ISO-Code, so Sie können das direkt in verwenden:
>>> import pycountry
>>> country = pycountry.countries.get(alpha2=region_code_for_number(pn))
>>> print(country.name)
United Kingdom
Beachten Sie, dass das .country_code
Attribut ist nur eine ganze Zahl, so dass Sie phonenumbers.phonenumberutil.region_code_for_country_code()
ohne eine Telefonnummer, nur einen Ländercode verwenden:
>>> region_code_for_country_code(1)
'US'
>>> region_code_for_country_code(44)
'GB'
Vermutlich, wenn Sie Landesvorwahl sagen, Sie meinen internationalen Anruf Codes. Ist das wahr, oder meinst du eigentlich ISO 3166-1 alpha-2? – erip
Bitte geben Sie ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) –
Werfen Sie einen Blick auf 'phonenumberutils.region_codes_for_country_code' –