Python 中如何生成唯一 ID

使用 uuid.uuid4() 方法生成唯一 ID,例如 unique_id = uuid.uuid4()。 uuid 内置模块实现了一个 uuid4() 方法,该方法生成并返回一个随机 ID。

import uuid

print(uuid.uuid4())  # ?️ 730ed4ba-d703-4cdf-8b30-f8399352fabb

print(uuid.uuid4().int)  # ?️ 136047018022410445780946091752650147825

print(uuid.uuid4().bytes)  # ?️ b'*\xe1h**\xceC\x87\xae\x8e\x1d\x81zX\x1c\xef'

print(uuid.uuid4().hex)  # ?️ 4fa066987b2c4507a949a94c1fb43f50

我们使用 uuid.uuid4 方法生成随机 ID。

import uuid

print(uuid.uuid4())  # ?️ 730ed4ba-d703-4cdf-8b30-f8399352fabb
print(uuid.uuid4())  # ?️ 81fd808b-76a0-4ebf-9096-f45d6f7d495a
print(uuid.uuid4())  # ?️ 753237da-bb2e-460a-88bb-329cc1dc5fe4

内置的 uuid 模块提供了不可变的 UUID 对象和用于生成 UUID 的函数。

如果我们只需要一个唯一 ID,则应使用 uuid4() 方法。

我们可以将唯一 ID 传递给 str() 类,以将 UUID 转换为标准格式的十六进制数字字符串。

import uuid

unique_id = uuid.uuid4()

print(unique_id)  # ?️ 011963c3-7fa3-4963-8599-a302f9aefe7d
print(type(unique_id))  # ?️ <class 'uuid.UUID'>

unique_id_str = str(unique_id)
print(unique_id_str)  # ?️ 011963c3-7fa3-4963-8599-a302f9aefe7d
print(type(unique_id_str))  # ?️ <class 'str'>

我们可以访问 UUID 对象的 bytes 属性以获取 UUID 的原始 16 字节。

import uuid

unique_id_bytes = uuid.uuid4().bytes
print(unique_id_bytes)  # ?️ b'\x9e\xfb\xf4Ma\xc1I\xcc\xa0[2\\\xb6\xe9\x06\x9f'

# ?️ generate UUID from 16-byte string
result = uuid.UUID(bytes=unique_id_bytes)
print(result)  # ?️ 9efbf44d-61c1-49cc-a05b-325cb6e9069f

UUID 对象的 int 属性将 UUID 作为 128 位整数返回。

import uuid

unique_id_int = uuid.uuid4().int
print(unique_id_int)  # ?️ 49084253960468019865244738914988538494

对象的 hex 属性将 UUID 作为 32 个字符的小写十六进制字符串返回。

import uuid

unique_id_int = uuid.uuid4().hex
print(unique_id_int)  # ?️ c56fb2e760fb4d3ba6c426c00c602a55

如果我们只需要一个随机 ID,请使用 uuid.uuid4() 方法。

import uuid

random_unique_id = uuid.uuid4()
print(random_unique_id)  # ?️ 1fafff7f-6248-41f0-8b28-1e28bb12962b