<p>制作了两个代码模块:</p>
<ol>
<li>使用方法is\u valid\u number检查该号码是否与exchange关联</li>
<li>指定区域(如“US”),因为对测试用例“1800444”(MCI电话测试号码)使用None不起作用</李>
</ol>
<p><strong>代码</strong></p>
<pre><code>import phonenumbers
from phonenumbers import carrier
def valid_number(number, region = "US"):
''' check validity of phone numbers (default to US region)
Used default region as US since some numbers did not work using None
'''
# Parsing String to Phone number
phone_number = phonenumbers.parse(number, region)
# Validating a phone number (i.e. it's in an assigned exchange)
return phonenumbers.is_valid_number(phone_number)
</code></pre>
<p><strong>使用列表进行测试</strong></p>
<pre><code>data = ["+442083661177", "+123456789", "18004444444"]
for i in data:
print(i, valid_number(i))
# Output
+442083661177 True
+123456789 False
18004444444 True # note: this number doesn't work with default region = None
</code></pre>
<p><strong>使用数据帧进行测试</p>
<pre><code>df = pd.DataFrame({"phone_number": data})
df['valid'] = df['phone_number'].apply(valid_number)
# Resulting df
phone_number valid
0 +442083661177 True
1 +123456789 False
2 18004444444 True
</code></pre>