Validierung der Python-Telefonnummer
- Validieren Sie Telefonnummern in Python
-
Verwenden Sie die
Phonenumbers
-Bibliothek in Python -
Analysieren Sie Telefonnummern mit der Python-Bibliothek
Phonenumbers
-
Validieren Sie Telefonnummern mit der Methode
is_possible_number()
-
Validieren Sie Telefonnummern mit der Methode
is_valid_number()
-
Verwenden Sie die Methode
description_for_number()
in der KlasseGeocoder
, um den Standort der Telefonnummer zu finden -
Verwenden Sie die Methode
name_for_number()
in der KlasseCarrier
, um den Träger der Telefonnummer zu finden - Validieren Sie Telefonnummern und erhalten Sie zusätzliche Informationen mit Python
Dieser Python-Artikel zeigt, wie wir Telefonnummern mit der Python-Bibliothek phonenumbers
validieren können. Wir werden lernen, Telefonnummern mit Python zu validieren und sie dann für die Anzeige nach Region, Land, Kontinent und Netzbetreiber zu formatieren.
Wir beginnen mit einem einfachen Beispiel und gehen zu einem komplexen über. Also fangen wir an und lassen Python Telefonnummern validieren und formatieren.
Validieren Sie Telefonnummern in Python
Die Überprüfung und Validierung der Richtigkeit von Telefonnummern kann sehr schwierig sein. Das Format einer Telefonnummer kann sich je nach Land ändern.
Auch innerhalb ein und derselben Nation kann es erhebliche Unterschiede geben. Einige Länder verwenden denselben Ländercode, während andere mehrere Ländercodes verwenden.
Einige Länder verwenden sogar mehr als einmal denselben Ländercode.
Eine Abbildung in Googles libphonenumber
-Repository auf GitHub zeigt, dass die Vereinigten Staaten von Amerika, Kanada und die karibischen Inseln alle dieselbe internationale Vorwahl von +1 verwenden.
Die Telefonnummern können aus dem Kosovo mit den Ländervorwahlen für Serbien, Slowenien oder Marokko angerufen werden. Dies sind nur einige Schwierigkeiten beim Identifizieren oder Validieren von Telefonnummern.
Auf den ersten Blick scheint es, als könne man mit RegEx
die Ländervorwahl einer Telefonnummer validieren. Dies weist jedoch darauf hin, dass wir zur Validierung eines Ländercodes für jedes Land weltweit eine eindeutige RegEx
-Regel erstellen müssen.
Darüber hinaus haben die Mobilfunkanbieter jeweils Richtlinien (z. B. dürfen bestimmte Ziffern nur in einem bestimmten Nummernkreis verwendet werden). Wir sehen, dass die Dinge das Potenzial haben, schnell außer Kontrolle zu geraten, was es für uns extrem schwierig machen würde, Telefonnummerneingaben selbst zu validieren.
Verwenden Sie die Phonenumbers
-Bibliothek in Python
Wir haben Glück, denn eine Python-Bibliothek kann uns effektiv durch den Validierungsprozess führen. Diese Bibliothek wurde von Googles libphonenumber
-Bibliothek abgeleitet, die auch für andere Programmiersprachen wie C++, Java und JavaScript verwendet werden kann.
Mit dieser Bibliothek wurde die Python-Bibliothek Phonenumbers
erstellt.
Dieser Artikel zeigt uns, wie man mit Python eine Handynummer validiert.
Installieren Sie die Bibliothek Phonenumbers
in Python
Die Validierung von Telefonnummern wird mit Python dank eines integrierten Moduls leicht gemacht. Dieses Modul wird als Modul Rufnummern
bezeichnet.
Um das Modul nutzen zu können, müssen wir es zuerst installieren. Mit pip
können wir dies tun:
pip install phonenumbers
Sobald das Modul installiert ist, können wir Telefonnummern mit Landesvorwahl validieren.
Nachdem alles eingerichtet ist, können wir die Bibliothek Telefonnummern
erkunden.
Analysieren Sie Telefonnummern mit der Python-Bibliothek Phonenumbers
Die Telefonnummer ist mit ziemlicher Sicherheit eine Zeichenfolge, unabhängig davon, ob die Eingabe aus einem Webformular oder einer anderen Quelle stammt, z. B. Textextraktion (die später in diesem Handbuch behandelt wird). Es muss mit Telefonnummern geparst und dann in eine PhoneNumber
-Instanz umgewandelt werden, bevor wir es für die Validierung und andere Zwecke verwenden können.
Importieren Sie die Bibliothek
Zuerst müssen wir die erforderlichen Bibliotheken importieren; wir werden Telefonnummern
importieren. Wir müssen auch carrier
, timezone
und geocoder
importieren.
Beispielcode:
import phonenumbers
Analysieren Sie die Telefonnummer
Dank der Methode parse()
können wir nützliche Informationen aus der Telefonnummer extrahieren, die Folgendes umfasst:
Beispielcode:
import phonenumbers
My_number = "+92333920000"
Parse_number = phonenumbers.parse(My_number)
Bei Verwendung der Funktion phonenumbers.parse()
wird als Eingabe ein Telefonnummern-String benötigt. Als zusätzliche optionale Eingabe können wir die nationalen Informationen im ISO-Alpha-2-Format bereitstellen.
Denken Sie zum Beispiel an den folgenden Code:
Parse_number = phonenumbers.parse(My_number)
In der ISO-Alpha-2-Notation bezeichnet RO
Rumänien. Wir können diese Seite verwenden, um die Alpha-2- und numerischen Ländercodes für jede Nation weltweit nachzuschlagen.
Sofern nicht unbedingt erforderlich, wird der ISO-Alpha-2-Ländercode in den meisten Fällen weggelassen.
Telefonnummern können mit phonenumbers.parse()
auf allgemeine Probleme wie Länge, führende Nullen und Vorzeichen validiert werden. Denken Sie daran, dass diese Methode eine Ausnahme auslöst, wenn eine der erforderlichen Bedingungen nicht erfüllt ist.
Setzen Sie es immer in einen try/catch
-Block in unserem Code.
Nachdem unsere Telefonnummer ordnungsgemäß verarbeitet wurde, können wir mit der Validierungsphase fortfahren.
Validieren Sie Telefonnummern mit der Methode is_possible_number()
Zwei Ansätze können verwendet werden, um eine Telefonnummer auf Phonenumbers
zu validieren. Der Hauptunterschied zwischen diesen Ansätzen ist ihre jeweilige Geschwindigkeit und Genauigkeit.
Um dies näher zu erläutern, beginnen wir mit der Funktion is_possible_number()
.
Beispielcode:
import phonenumbers
My_number = "+92333920000"
Parse_number = phonenumbers.parse(My_number)
print(phonenumbers.is_possible_number(Parse_number))
Ausgang:
True
Das Programm erzeugt als Ausgabe den Wert True
.
Validieren Sie Telefonnummern mit der Methode is_valid_number()
Jetzt verwenden wir dieselbe Nummer, aber dieses Mal überprüfen wir ihre Gültigkeit mit der Methode is_valid_number()
:
Beispielcode:
import phonenumbers
My_number = "+92333920000"
Parse_number = phonenumbers.parse(My_number)
print(phonenumbers.is_valid_number(Parse_number))
Ausgang:
False
Die Ausgabe wäre anders, obwohl die Eingabe gleich bliebe.
is_possible_number()
errät die Gültigkeit der Telefonnummer, indem es ihre Länge überprüft, während die Methode is_valid_number()
ihre Länge, Präfix und Region überprüft.
phonenumbers.is_possible_number()
ist schneller als phonenumbers.is_valid_number()
bei der Iteration über eine große Telefonnummernliste. Diese Ergebnisse sind, wie gezeigt, nicht immer genau.
Es ist hilfreich, lange Telefonnummern schnell zu eliminieren. Es ist riskant zu verwenden.
Verwenden Sie die Methode description_for_number()
in der Klasse Geocoder
, um den Standort der Telefonnummer zu finden
Eine Telefonnummer kann viele Details über ihren Besitzer preisgeben, von denen einige für unsere Forschung relevant sein könnten. Da der jeweilige Netzbetreiber, der einer Telefonnummer zugeordnet ist, ein Faktor für die Gesamtkosten des Produkts ist, möchten wir möglicherweise verschiedene Anwendungsprogrammierschnittstellen (APIs) oder API-Endpunkte verwenden.
Möglicherweise möchten wir unsere Werbebenachrichtigungen basierend auf der Zeitzone des Standorts unserer Kunden (Telefonnummern) senden, damit wir vermeiden können, ihnen mitten in der Nacht eine Nachricht zu senden. Es verhindert, dass wir sie versehentlich aufwecken.
Wir könnten auch Informationen über den Standort der Telefonnummer erhalten, um relevante Informationen zur Situation bereitzustellen. Die Bibliothek Rufnummern
bietet den Benutzern Zugriff auf die erforderlichen Tools, um diese Anforderungen zu erfüllen.
Wir verwenden die Methode description_for_number()
, die in der Klasse geocoder
verfügbar ist, um mit dem Standort zu beginnen. Die Parameter sind eine geparste Telefonnummer und ein Kurzname für die Sprache.
Lassen Sie uns das mit der gefälschten Nummer versuchen, die wir zuvor verwendet haben.
Beispielcode:
import phonenumbers
from phonenumbers import geocoder
My_number = phonenumbers.parse("+92333920000")
print("This number is from: " + geocoder.description_for_number(My_number, "en"))
Ausgang:
This number is from: Pakistan
Verwenden Sie die Methode name_for_number()
in der Klasse Carrier
, um den Träger der Telefonnummer zu finden
Wir verwenden die Methode name_for_number()
der Klasse carrier
.
Beispielcode:
import phonenumbers
from phonenumbers import carrier
My_number = phonenumbers.parse("+92333920000")
print("The carrier of the number is: " + carrier.name_for_number(My_number, "en"))
Die Ausgabe des Codes:
The carrier of the number is: Ufone
Validieren Sie Telefonnummern und erhalten Sie zusätzliche Informationen mit Python
Beispielcode:
import phonenumbers
from phonenumbers import carrier, timezone, geocoder
my_number = phonenumbers.parse("+92333920000", "GB")
print((phonenumbers.is_valid_number(my_number)))
print("The carrier of the number is: " + carrier.name_for_number(my_number, "en"))
print("The content and the city of the number are:")
print(timezone.time_zones_for_number(my_number))
print(
"The country this number belongs to is: "
+ geocoder.description_for_number(my_number, "en")
)
Ausgang:
True
The carrier of the number is: Ufone
The content and the city of the number are:
('Asia/Karachi',)
The country this number belongs to is: Pakistan
So können wir feststellen, ob eine Zahl gültig ist. Wir sehen in der Ausgabe True
, was zeigt, dass die im Python-Code verwendete Zahl korrekt ist.
Wir können auch den Träger der Nummer herausfinden. In unserem Fall ist es Ufone
.
Neben dem Spediteur finden wir den Namen des Landes, des Kontinents und der Stadt. Laut der von uns verwendeten Nummer stammt die Nummer aus Asien, Pakistan und der Stadt Karatschi.
My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.
LinkedIn