1

私はPythonの電話番号ライブラリを使用して、次のような番号を解析および検証しています:

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

そして、さらに使用するために、特定の番号に一致する 2 文字の地域を取得する方法があるかどうかを知りたいですか?

Readmeに記載されているこの方法を試しました:

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

しかし問題は、これらのタイムゾーンを使用して別の数値を解析する方法が見つからないことです。(phonenumbers.parse("07986123456", 'Europe/London')例外がスローされます)

4

1 に答える 1

3

タイムゾーンではなく国コードを最初に取得する必要があります。

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

これは、多くの国でダイヤル コードは異なりますが、タイム ゾーンは同じであるためです。

于 2016-03-22T05:58:15.697 に答える