Este grupo de especialistas pasados varios días de trabajo y de juntar de datos, hallamos la solución, nuestro deseo es que te sea útil en tu proyecto.
Solución:
los phonenumbers
la biblioteca está poco documentada; en su lugar, le aconsejan que mire el proyecto original de Google para pruebas unitarias para aprender sobre la funcionalidad.
los PhoneNumberUtilTest
unittests parece cubrir su caso de uso específico; asignar la parte del país de un número de teléfono a una región dada, usando el getRegionCodeForCountryCode()
función. También hay una getRegionCodeForNumber()
funcion que aparece para extraer el codigo de pais attribute de un número analizado primero.
Y de hecho, hay correspondientes phonenumbers.phonenumberutil.region_code_for_country_code()
y phonenumbers.phonenumberutil.region_code_for_number()
funciones para hacer lo mismo en 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))
Manifestación:
>>> 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
El código de región resultante es un código ISO de 2 letras, por lo que puede usarlo directamente en pycountry
:
>>> import pycountry
>>> country = pycountry.countries.get(alpha_2=region_code_for_number(pn))
>>> print(country.name)
United Kingdom
Tenga en cuenta que el .country_code
attribute es solo un enteropara que puedas usar phonenumbers.phonenumberutil.region_code_for_country_code()
sin un número de teléfono, solo un código de país:
>>> region_code_for_country_code(1)
'US'
>>> region_code_for_country_code(44)
'GB'
Calificaciones y comentarios
Recuerda que puedes comunicar esta sección si si solucionó tu problema.