uuid

The Python uuid module provides a way to generate universally unique identifiers (UUIDs), which are 128-bit values used to uniquely identify information in computer systems. UUIDs are often used when a unique identifier is required, such as database keys or session IDs.

Here’s a quick example:

Python
>>> import uuid

>>> uuid.uuid4()
UUID('12345678-1234-5678-1234-567812345678')

Key Features

  • Generates UUIDs using random, time-based, and name-based methods
  • Supports UUID versions 1, 3, 4, and 5
  • Parses and validates UUID strings and objects
  • Converts UUIDs to and from string representations
  • Integrates seamlessly with Python types and serialization
  • Guarantees uniqueness across space and time

Frequently Used Classes and Functions

Object Type Description
uuid.UUID Class Represents a UUID object
uuid.uuid1() Function Generates a UUID based on the host ID and current time
uuid.uuid3() Function Generates a name-based UUID using MD5 hashing
uuid.uuid4() Function Generates a random UUID
uuid.uuid5() Function Generates a name-based UUID using SHA-1 hashing
uuid.getnode() Function Returns the hardware address as a 48-bit integer
uuid.NAMESPACE_DNS Class Represents the DNS namespace constant for name-based UUIDs

Examples

Generating a name-based UUID using MD5 hashing:

Python
>>> import uuid

>>> uuid.uuid3(uuid.NAMESPACE_DNS, "python.org")
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

Common Use Cases

  • Generating unique identifiers for database entries
  • Creating unique session IDs for web applications
  • Ensuring uniqueness of identifiers in distributed systems
  • Tagging files, resources, or objects with unique IDs
  • Safely merging data from multiple sources
  • Implementing resource identifiers in network protocols
  • Supporting object tracking in logging or auditing systems

Real-World Example

Here’s an example of using the uuid module to generate a unique filename for an uploaded file in a web application. This approach helps prevent filename collisions:

Python
>>> import uuid

>>> def generate_unique_filename(filename):
...     file_extension = filename.split(".")[-1]
...     unique_id = uuid.uuid4()
...     return f"{unique_id}.{file_extension}"
...

>>> generate_unique_filename("document.txt")
'3f6d2f0e-19a4-4e5b-8cb3-3c9b7f2c9db7.txt'

In this example, the uuid module generates a UUID to ensure that each uploaded file has a unique name, preventing any potential file overwrites.

Tutorial

Serialize Your Data With Python

In this in-depth tutorial, you'll explore the world of data serialization in Python. You'll compare and use different data serialization formats, serialize Python objects and executable code, and handle HTTP message payloads.

intermediate data-science web-dev

For additional information on related topics, take a look at the following resources:


By Leodanis Pozo Ramos • Updated July 29, 2025