Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Sanitize, validate and format phone numbers into E.164 valid phone numbers.

Project description


License PyPi CircleCI

Sanitize, validate and format phone numbers into E.164 valid phone numbers.

Google's libphonenumber on steroids. Tries all sorts of crazy combinations in an attempt to create a valid phone number. Useful for those of us who have to deal with poorly sanitized data.

See the list of test cases


$ pip install py-phone-number-fmt


from phonenumberfmt import format_phone_number

# implied phone region is the country of which to
# use the dialing prefix in case the number appears
# to be local
result = format_phone_number('778\173 0.92', implied_phone_region='RO')
assert result == '+40778173092'

The resulting phone number will be formatted according to the E.164 standard. Want to change the output format? Pass the third, optional parameter fmt with a valid member of phonenumbers.NumberFormat:

from phonenumbers import NumberFormat
result = format_phone_number(
    '778\173 0.92',
    fmt=NumberFormat.INTERNATIONAL, # default is NumberFormat.E164

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for py-phone-number-fmt, version 1.1
Filename, size File type Python version Upload date Hashes
Filename, size py-phone-number-fmt-1.1.tar.gz (4.9 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page