5

似乎“5187621769”应该是 phonenumbers 库解析的一个非常容易的数字。它是美国区号的 10 位数字。但是……没有运气。

设置:

import phonenumbers
number = '5187621769'

方法一:

parsed = phonenumbers.parse(number)

这会引发错误。

方法二:

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

给出国家代码 = 51,这不是美国。

我知道我可以做到:

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

但我并不总是知道这个数字是美国(这只是我发现我没有得到想要的行为的一种情况)。有没有我缺少的选项或格式技巧?谢谢!

4

3 回答 3

6

你应该简单地使用:

parsed = phonenumbers.parse(number, 'US')
于 2015-11-16T19:25:17.387 回答
5

It would a very easy number if phonenumbers was an US only library. You are missing the "+1" a.k.a. country code. If you would like to assume that numbers that phonenumbers can't parse are US numbers you could do something like:

try:
    parsed = phonenumbers.parse(number)
except phonenumbers.NumberParseException as npe:
    parsed = phonenumbers.parse('+1{}'.format(number))
于 2015-02-04T22:26:17.157 回答
1

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

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

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

于 2016-01-26T11:34:02.540 回答