如何在 Python 中创建一个 8 位唯一 ID?

新手上路,请多包涵

我正在制作一个用于练习的网络应用程序,它是一个工作门户。我想为最终用户可见的作业创建 8 位唯一 ID。 ID 可以包含数字和字母。模式必须是 8 位数字,不带连字符或破折号,例如 XXXXXXXX

我知道 python 中有 UUID 的东西。但他们似乎以其特定格式生成 id。有没有办法以我需要的格式获取 ID?如果没有,请有人指导我如何去做?

我知道有一个类似的线程 How can I generate a unique ID in Python? ;但它没有具体回答我的问题。它没有回答我想要达到的目标。

提前致谢。

原文由 RyuCoder 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 915
2 个回答

那么你可以使用 uuid.hex

 import uuid
uuid.uuid4().hex[:8]  # Might reduce uniqueness because of slicing

或者 Django 也有辅助函数 get_random_string 接受两个参数 length (默认=12)allowed_chars

 from django.utils.crypto import get_random_string
get_random_string(8)

原文由 Aamir Rind 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 os.urandom 数据, base64 编码;

 In [1]: import os

In [2]: import base64

In [3]: base64.b64encode(os.urandom(6)).decode('ascii')
Out[3]: '6Amtry80'

原文由 Roland Smith 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进