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爬虫知识点详解
- Python os.popen() 方法
- c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询
- 【软件测试】python接口自动化测试编写脚本,资深测试总结方法,你的实用宝典......
- 软件测试学什么?我从功能测试到Python自动化测试的进阶之路......
- 【华为OD机试真题 python】单词重量【2022 Q4 | 100分】
- 安装Python的机器学习包Sklearn 出错解决方法
- Google Earth Engine(GEE)——Qgis-earthengine使用 Python API 集成 Google Earth Engine 和 QGIS
- 当一个零基础小白学会python网络爬虫在哪可以接单?
- 《Python数据挖掘:概念、方法与实践》一1.5 小结
- Python实现微信自动回复(机器人版本)
- Python爬取infobox内容并保存为三元组
- python常用方法手记
- 【Python】+类内部方法相互调用
- Python 迭代器 & __iter__方法
- Python十大语法收藏
- Python数据分析项目班课程介绍
- 《Python面向对象编程指南》——2.2 __format__()方法
- python学习之去除字符串中的空格(6种方法)
- Python数据处理Tips数据重复值处理常用方法
- Python数据处理Tips机器学习中文数据8种常用处理方法
- 在Python中多种SQL数据仓库进行交互操作的方法详解
- Python列表推导式
- Python实现下载文件的三种方法
- Python安装Anaconda安装
- python requests提示警告InsecureRequestWarning
- python爬虫代码优化:使用生成器重构提取数据方法
- python基础:删除列表中特定元素的几种方法
- 【Python】几种测试框架对比-unittest
- 【图像处理】——图像的灰度化处理(Python实现三种方法——最大值法、平均值法、加权均值法、gamma校正)
- Python的range函数与for循环语句
- [Python] remove()方法