在这里介绍一下 怎么用Python清洗手机号码方法 phonenumbers(电话号码解析)
安装:pip3 install phonenumbers
1.把看似不一样的号码规范到同一个号码
>>> import phonenumbers
>>> x = phonenumbers.parse("+442083661177", None)
>>> y = phonenumbers.parse("020 8366 1177", "GB")
>>> x == y
True
2.检查是否是一个“可能”的号码
>>> z = phonenumbers.parse("+120012301", None)
>>> phonenumbers.is_possible_number(z) # too few digits for USA
False
>>> phonenumbers.is_valid_number(z)
False
3.将电话号码格式化到一个标准的格式
>>> phonenumbers.format_number(x, phonenumbers.PhoneNumberFormat.NATIONAL)
u'020 8366 1177'
>>> phonenumbers.format_number(x, phonenumbers.PhoneNumberFormat.INTERNATIONAL)
u'+44 20 8366 1177'
>>> phonenumbers.format_number(x, phonenumbers.PhoneNumberFormat.E164)
u'+442083661177'
4. 从一大块文本中提取电话号码
>>> text = "Call me at 510-748-8230 if it's before 9:30, or on 703-4800500 after 10am."
>>> for match in phonenumbers.PhoneNumberMatcher(text, "US"):
... print match
...
PhoneNumberMatch [11,23) 510-748-8230
PhoneNumberMatch [51,62) 703-4800500
>>> for match in phonenumbers.PhoneNumberMatcher(text, "US"):
... print phonenumbers.format_number(match.number, phonenumbers.PhoneNumberFormat.E164)
...
+15107488230
+17034800500
发表评论 取消回复