我们如何使用该python-phonenumbers库来确定特定电话号码是手机号码还是固定电话号码?
我正在尝试从 Web 表单中输入英国手机号码,并使用 Python 将其清理为 E.164 格式,然后对其进行验证,然后将其输入数据库。
我尝试使用的库是“Phonenumbers”,到目前为止我正在尝试的代码是:
def Phone():
my_number = '+4407808765066'
clean_phone = phonenumbers.parse(my_number, "GB")
cleaner_phone = phonenumbers.format_number(clean_phone,
phonenumbers.PhoneNumberFormat.E164)
valid = phonenumbers.is_possible_number(cleaner_phone)
print(cleaner_phone)
Run Code Online (Sandbox Code Playgroud)
只是通过逻辑,我的期望是它应该获取my_number变量的内容,将其格式化为clean_phone变量,然后将其格式化为 E.164 标准,然后将其传递给验证并将输出返回到valid. print 语句是为了让我查看输出。
如果我注释掉valid变量行,一切看起来都可以正常工作。一旦我取消注释,我就会收到错误(见下文)。
Traceback (most recent call last):
File "phone_test.py", line 14, in <module>
Phone()
File "phone_test.py", line 10, in Phone
valid = phonenumbers.is_possible_number(cleaner_phone)
File "D:\Dropbox\Coding Projects\learner_driver_app\env\lib\site-packages\phonenumbers\phonenumberutil.py", line 2257, in is_possible_number
result = is_possible_number_with_reason(numobj)
File "D:\Dropbox\Coding Projects\learner_driver_app\env\lib\site-packages\phonenumbers\phonenumberutil.py", line 2358, in is_possible_number_with_reason
return is_possible_number_for_type_with_reason(numobj, PhoneNumberType.UNKNOWN) …Run Code Online (Sandbox Code Playgroud)