Python电话号码错误str没有属性国家/地区代码

问题描述

我正在尝试获取电话号码的承运人

我在python中使用电话号码,并不断收到此错误

‘str’ object has no attribute ‘country_code’

这是我的代码

import phonenumbers
num = input("phone number")
from phonenumbers import carrier
Carrier = carrier.name_for_number("+1" + num,"en")
print(Carrier)
    ![enter image description here](https://i.stack.imgur.com/BcsQm.png)![enter image description here](https://i.stack.imgur.com/x6TSc.png)![enter image description here](https://i.stack.imgur.com/EONAZ.png)![enter image description here](https://i.stack.imgur.com/X3iVY.png)![enter image description here](https://i.stack.imgur.com/Xpbec.png)

解决方法

似乎name_for_number需要一个对象,因此您必须首先解析输入:

num = input("phone number")
num_object = phonenumbers.parse("+1 {}".format(num))

我建议您做这样的事情:

import phonenumbers 
import phonenumbers.carrier 

num_object = None 

while num_object is None: 
    try: 
        num = input("phone number: ") 
        num_object = phonenumbers.parse("+1 {}".format(num),region="US") 
    except Exception as error: 
        print("ERROR: {}".format(error)) 
          
carrier = phonenumbers.carrier.name_for_number(num_object,"en") 
print(carrier)