私は2 python libraries: phonenumbers 、 pycountry 。対応する国名。
phonenumbers
では、parse
に完全な数値を入力する必要があります。 pycountry
では、国ISOを取得します。
図書館の国コードを指定して国名を取得するための解決策または方法はありますか?
phonenumbers
ライブラリはかなり文書化されていません。代わりに、ユニットテストで機能について学ぶために、元のGoogleプロジェクトを調べることを勧めています。
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(alpha_2=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'
_
小さな追加-文字列コードで国の接頭辞を取得することもできます。例えば。:
from phonenumbers.phonenumberutil import country_code_for_region
print(country_code_for_region('RU'))
print(country_code_for_region('DE'))