DEV Community

Serhat Teker
Serhat Teker

Posted on Originally published at tech.serhatteker.com on

How to Remove Dashes in UUID

UUIDs are just 128 bit pieces of data, that is displayed as (128/4) = 32 hexadecimal digits, like this :

  • UUID v1 : c1b33c74-0006-11eb-9894-c83dd482e3ef
  • UUID v4 : 8791f25b-d4ca-4f10-8f60-407a507edefe

Python has built-in uuid library to generate UUID easily:

$ python3
Python 3.8.1 (default, Feb 12 2020, 16:30:11)
[GCC 7.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import uuid
>>> print(uuid.uuid4())
8791f25b-d4ca-4f10-8f60-407a507edefe
🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025 🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025

OK, how can we turn 8791f25b-d4ca-4f10-8f60-407a507edefe to 8791f25bd4ca4f108f60407a507edefe ?

There are regex solutions for this problem but I like to use python to solve this.

# utils.py
from uuid import UUID

def uuid_to_hex(uuid):
    """Turn uuid4 with dashes to hex

    From : 8791f25b-d4ca-4f10-8f60-407a507edefe
    To   : 8791f25bd4ca4f108f60407a507edefe

    :param uuid: uuid string with dashes
    :type uuid: str

    :returns: str - hex of uuid
    """

    return UUID(uuid).hex
🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025 🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025

Example usage of this function:

$ python3
Python 3.8.1 (default, Feb 12 2020, 16:30:11)
[GCC 7.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from utils import uuid_to_hex
>>> _uuid = "8791f25b-d4ca-4f10-8f60-407a507edefe"
>>> print(uuid_to_hex(_uuid))
8791f25bd4ca4f108f60407a507edefe
🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025 🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025

And yes, I like docs very much:

>>> uuid_to_hex.__doc__
'Turn uuid4 with dashes to hex\n\n    From : 8791f25b-d4ca-4f10-8f60-407a507edefe\n    To   : 8791f25bd4ca4f108f60407a507edefe\n\n    :param uuid: uuid string with dashes\n    :type uuid: str\n\n    :returns: str - hex of uuid\n    '
🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025 🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025

We can write this funtion also with Type Hints which introduced in PEP 484 in order to make it more readable(?). Type Hints requires Pythhon >= 3.5.

# utils.py
from uuid import UUID

def uuid_to_hex(uuid: str) -> str:
    """Turn uuid4 with dashes to hex

    From : 8791f25b-d4ca-4f10-8f60-407a507edefe
    To   : 8791f25bd4ca4f108f60407a507edefe

    :param uuid: uuid string with dashes
    :type uuid: str

    :returns: str - hex of uuid
    """

    return UUID(uuid).hex
🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025 🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025

All done!

Top comments (2)

🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025
 
otumianempire profile image
Michael Otu •

Hello, I hope it is okay to drop the snippet below. I saw that you were using a hex, from UUID. Basically, split at the dashes and join with empty string.

from uuid import uuid4


def remove_dashes(uid):
    return "".join(str(uid).split("-"))


sample_uid = uuid4()

sample_output = remove_dashes(sample_uid)

print(str(sample_uid), sample_output, sep="\n")
# 52af7d72-3b7c-4048-b3b9-28dff0c8308d
# 52af7d723b7c4048b3b928dff0c8308d
🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025 🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025
🏆 ยอดนิยม: serhatteker/how to remove dashes in uuid i - Kapook Update 2025
 
serhatteker profile image
Serhat Teker •

Seems cool; vanilla python -w/o any lib.