python⽣成并处理uuid的实现⽅式
UUID(Universally Unique Identifier)是通⽤唯⼀识别码,在许多领域⽤作标识,⽐如我们常⽤的数据库也可以⽤它来作为主键,原理上它是可以对任何东西进⾏唯⼀的编码的。
作为新⼿⼀看到类似varchar(40)这样的主键就觉得有点蒙圈了,字符串型也不能⾃增啊,这⾥就应该应⽤UUID了。
数据库⼀般都有⾃⼰的办法⽣成UUID,但虽然可以⽤,但这玩意考虑到可读性和有点坑的长度还是尽量不要⽤这玩意做主键···咳,有点跑题···
下⾯就简单说明⼀下python是如何⽣成UUID的:
python有⼀个模块叫做uuid,导⼊它就可以使⽤它的四个⽅法了。注意这四个⽅法依次是uuid1(),uuid3(),uuid4(),uuid5(),
然⽽并没有uuid2()。
# -*- coding:utf-8 -*-
import uuid
print uuid.uuid1()
#bf1dfacf-67d8-11e8-9a23-408d5c985711
print uuid.uuid3(uuid.NAMESPACE_DNS, 'yuanlin')
#ddb366f5-d4bc-3a20-ac68-e13c0560058f
print uuid.uuid4()
#144d622b-e83a-40ea-8ca1-66af8a86261c
print uuid.uuid5(uuid.NAMESPACE_DNS, 'yuanlin')
#4a47c18d-037a-5df6-9e12-20b643c334d3
乍⼀看全都是36个字符,那么他们到底有什么不同呢,下⾯⼀⼀分析。
uuid1():这个是根据当前的时间戳和MAC地址⽣成的,最后的12个字符408d5c985711对应的就是MAC地址,因为是MAC地址,那么唯⼀性应该不⽤说了。但是⽣成后暴露了MAC地址这就很不好了。
uuid3():⾥⾯的namespace和具体的字符串都是我们指定的,然后呢···应该是通过MD5⽣成的,这个我们也很少⽤到,莫名其妙的感觉。
uuid4():这是基于随机数的uuid,既然是随机就有可能真的遇到相同的,但这就像中奖似的,⼏率超⼩,因为是随机⽽且使⽤还⽅便,所以使⽤这个的还是⽐较多的。
uuid5():这个看起来和uuid3()貌似并没有什么不同,写法⼀样,也是由⽤户来指定namespace和字符串,不过这⾥⽤的散列并不是MD5,⽽是SHA1.
下⾯再来说⼀下简单的处理,UUID中间的'-'是个⽐较奇怪的字符,那么应该去掉它,这其实超简单:
uid = str(uuid.uuid4())
suid = ''.join(uid.split('-'))
补充拓展:python⽣成uuid,并去掉中间的'-'
UUID(Universally Unique Identifier)是通⽤唯⼀识别码,是软件建构的标准,号称可以对任何⼀种东西进⾏唯⼀的编码。下⾯来看⼀下python中怎么⽣成uuid编码并去除其中间的符号‘-'。
import uuid
s_uuid=str(uuid.uuid4())
print s_uuid
l_uuid=s_uuid.split('-')
s_uuid=''.join(l_uuid)
print s_uuid字符串长度怎么数python
第⼀次print出的s_uuid是
4717cf79-1a64-4156-a3e8-883f1b76210d
第⼆次print出的s_uuid是
4717cf791a644156a3e8883f1b76210d
以上这篇python⽣成并处理uuid的实现⽅式就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论