Библиотека phonenumbers
довольно недостаточно документально; вместо этого они советуют вам посмотреть оригинальный проект Google для unittests, чтобы узнать о функциональности.
PhoneNumberUtilTest
unittests, кажется, покрывает ваш конкретный прецедент; сопоставление страны номер телефона с данным регионом, с использованием getRegionCodeForCountryCode()
function. Существует также getRegionCodeForNumber()
function, который, как представляется, сначала извлекает атрибут кода страны для разобранного номера.
И действительно, есть соответствующие phonenumbers.phonenumberutil.region_code_for_country_code()
и phonenumbers.phonenumberutil.region_code_for_number()
функции, чтобы сделать то же самое в Python:
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))
Демо:
>>> 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
Полученный код региона представляет собой 2-буквенный код ISO, так вы можете использовать это непосредственно в pycountry
:
>>> import pycountry
>>> country = pycountry.countries.get(alpha2=region_code_for_number(pn))
>>> print(country.name)
United Kingdom
Обратите внимание, что атрибут .country_code
является только целое, так что вы можете использовать phonenumbers.phonenumberutil.region_code_for_country_code()
без номера телефона, только код страны:
>>> region_code_for_country_code(1)
'US'
>>> region_code_for_country_code(44)
'GB'
Предположительно, когда вы говорите, код страны, вы имеете в виду Международные телефонные коды. Это правда, или вы на самом деле означаете ISO 3166-1 alpha-2? – erip
Просьба указать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) –
Посмотрите на 'phonenumberutils.region_codes_for_country_code' –