为什么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'