为什么python Phonenumbers库为+;358*****?
我使用以下代码获取电话号码所在国家/地区,目前我使用的是为什么python Phonenumbers库为+;358*****?,python,phone-number,Python,Phone Number,我使用以下代码获取电话号码所在国家/地区,目前我使用的是phonenumbers: query = phonenumbers.parse(number, None) geocoder.country_name_for_number(query, "en") 它给出了带有+358的数字的错误。我测试的库版本是最新的:7.4.4 有人对此库有解决方案或解决方法吗?国家应为芬兰 EDIT1: 例如,下面的数字给出了一个空字符串: >>> number = '+3587532630
phonenumbers
:
query = phonenumbers.parse(number, None)
geocoder.country_name_for_number(query, "en")
它给出了带有+358
的数字的错误。我测试的库版本是最新的:7.4.4
有人对此库有解决方案或解决方法吗?国家应为芬兰
EDIT1: 例如,下面的数字给出了一个空字符串:
>>> number = '+358753263000'
>>> query = phonenumbers.parse(number, None)
>>> geocoder.country_name_for_number(query, "en")
u''
我认为问题在于前缀
+358
不明确。如果你打电话的话,你会看到的
>>> geocoder.region_codes_for_country_code(358)
('FI', 'AX')
+358
是芬兰和奥兰群岛(AX)的前缀
如果代码不明确,country\u name\u表示\u号码
,则区域和呼叫的对特定号码而言是有效的\u号码\u表示\u地区
。如果它发现该数字在多个区域中有效,则返回一个空字符串。您可能对其进行了过度屏蔽。正如@Barmar所指出的,根据统计,“+358”后面的数字,下一个数字应该是9(或0)
将第一个数字从
7
更改为9
,这将给芬兰带来好处。您的数字也太多了,但它似乎不介意。我在他们的github
页面上打开了一个问题:
如果有答案,我会稍后在这里发布。字符串vs int问题?它是否有芬兰电话号码的正确数字?我无法重现您的问题,它会为我正确输出“芬兰”。@Barmar号码是
+358753263000
@L3viathan,您使用的是什么版本?对于我的号码,它是一个完整的号码,当然是有效的并且正在使用中,我应该采取什么解决方案?可能在Github页面上打开一个问题?我想我必须!我刚刚屏蔽了最后4个数字:3000
。正如我之前所说,我的测试是基于真实的数字,而不是隐藏的数字。我只是为了展示而把它遮住了。
>>> geocoder.country_name_for_number(phonenumbers.parse('+358753263000'), 'en')
u''
>>> geocoder.country_name_for_number(phonenumbers.parse('+358953263000'), 'en')
u'Finland'