我打算从字符和数字中创建一个唯一的ID。 ID应该看起来像这样
XXXX-XXXX-XXXX-XXXX
其中X是数字,小写和上限字母的组合。此Id将存储在mysql数据库中,并将增加以保持数据的一致性。
关于如何开始的任何建议?
答案 0 :(得分:16)
使用uuid
模块;
>>> import uuid
# make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')
# make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')
# make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')
# make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')
您可以使用
模拟您的4个字符的要求>>> "-".join([x[:4].upper() for x in str(uuid.uuid4()).split("-")])
'C984-EE70-4BFD-9963-9BB9'
>>> "-".join([x[:4].upper() for x in str(uuid.uuid4()).split("-")])
'30D7-4356-493E-B887-2671
答案 1 :(得分:3)
虽然它与您指定的格式不同,您是否考虑过使用UUID? Python有一个uuid
模块,从2.5开始。