为什么python phonenumbers库在这种情况下不起作用?

时间:2015-02-04 22:06:59

标签: python libphonenumber

好像' 5187621769'应该是一个非常容易的数字供phonenumbers库解析。它带有美国区号的10位数字。但是......没有运气。

设定:

import phonenumbers
number = '5187621769'

方法1:

parsed = phonenumbers.parse(number)

这会引发错误。

方法2:

parsed = phonenumbers.parse("+" + number)

提供国家/地区代码= 51,而不是美国。

我知道我能做到:

parsed = phonenumbers.parse(number,region="US")

但我并不总是知道这个号码是美国的(这只是我发现我没有得到理想行为的一个案例)。我有没有选项或格式化技巧?谢谢!

3 个答案:

答案 0 :(得分:4)

如果phonenumbers是美国唯一的图书馆,这将是一个非常容易的数字。你错过了" + 1" a.k.a.国家代码。如果您想假设phonenumbers无法解析的数字是美国数字,您可以执行以下操作:

try:
    parsed = phonenumbers.parse(number)
except phonenumbers.NumberParseException as npe:
    parsed = phonenumbers.parse('+1{}'.format(number))

答案 1 :(得分:4)

您应该使用:

state=tk.DISABLED

答案 2 :(得分:1)

在搜索电话号码详细信息时,您必须使用电话号码编写国家/地区代码。

此外,这是电话号码的API(libphonenumber的包装器):

http://blog.ones-app.com/ones-phone-number-api/