python生成并处理uuid的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yl416306434/article/details/80569688

UUID(Universally Unique Identifier)是通用唯一识别码,在许多领域用作标识,比如我们常用的数据库也可以用它来作为主键,原理上它是可以对任何东西进行唯一的编码的。作为新手一看到类似varchar(40)这样的主键就觉得有点蒙圈了,字符串型也不能自增啊,这里就应该应用UUID了。数据库一般都有自己的办法生成UUID,但虽然可以用,但这玩意考虑到可读性和有点坑的长度还是尽量不要用这玩意做主键···咳,有点跑题···

下面就简单说明一下python是如何生成UUID的:

python有一个模块叫做uuid,导入它就可以使用它的四个方法了。注意这四个方法依次是uuid1(),uuid3(),uuid4(),uuid5(),

然而并没有uuid2()。

  1. # -*- coding:utf-8 -*-

  2. import uuid

  3. print uuid.uuid1()

  4. #bf1dfacf-67d8-11e8-9a23-408d5c985711

  5. print uuid.uuid3(uuid.NAMESPACE_DNS, 'yuanlin')

  6. #ddb366f5-d4bc-3a20-ac68-e13c0560058f

  7. print uuid.uuid4()

  8. #144d622b-e83a-40ea-8ca1-66af8a86261c

  9. print uuid.uuid5(uuid.NAMESPACE_DNS, 'yuanlin')

  10. #4a47c18d-037a-5df6-9e12-20b643c334d3

乍一看全都是36个字符,那么他们到底有什么不同呢,下面一一分析。

uuid1():这个是根据当前的时间戳和MAC地址生成的,最后的12个字符408d5c985711对应的就是MAC地址,因为是MAC地址,那么唯一性应该不用说了。但是生成后暴露了MAC地址这就很不好了。

uuid3():里面的namespace和具体的字符串都是我们指定的,然后呢···应该是通过MD5生成的,这个我们也很少用到,莫名其妙的感觉。

uuid4():这是基于随机数的uuid,既然是随机就有可能真的遇到相同的,但这就像中奖似的,几率超小,因为是随机而且使用还方便,所以使用这个的还是比较多的。

uuid5():这个看起来和uuid3()貌似并没有什么不同,写法一样,也是由用户来指定namespace和字符串,不过这里用的散列并不是MD5,而是SHA1.

下面再来说一下简单的处理,UUID中间的'-'是个比较奇怪的字符,那么应该去掉它,这其实超简单:

  1. uid = str(uuid.uuid4())

  2. suid = ''.join(uid.split('-'))

python生成并处理uuid的方法相关推荐

  1. python生成随机数方法_详解用python生成随机数的几种方法

    今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下. 本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的 ...

  2. [转载] python 短网址_使用Python生成url短链接的方法

    参考链接: URL 短地址Shorteners及其Python中的API 1 用PHP和Python生成短链接服务的字符串ID 假设你想做一个像微博短链接那样的短链接服务,短链接服务生成的URL都非常 ...

  3. python 短网址_使用Python生成url短链接的方法

    用PHP和Python生成短链接服务的字符串ID 假设你想做一个像微博短链接那样的短链接服务,短链接服务生成的URL都非常短例如: http://t.cn/E70Piib, 我们应该都能想到链接中的E ...

  4. python 转短链接_使用Python生成url短链接的方法

    #引入哈希库 import hashlib def get_md5(s): s = s.encode('utf8') if isinstance(s, unicode) else s m = hash ...

  5. Python生成词云图,TIIDF方法文本挖掘: 词频统计,词云图

    python中使用wordcloud包生成的词云图. 下面来介绍一下wordcloud包的基本用法. class wordcloud.WordCloud(font_path=None, width=4 ...

  6. python使用源文件_使用Python生成源文件的两种方法

    利用Python的字符串处理模块,开发人员可以编写脚本用来生成那些格式相同的C.C++.JAVA源程序.头文件和测试文件,从而避免大量的重复工作.本文概述两种利用Python string类生成jav ...

  7. ABAP中生成GUID、UUID的方法汇总

    GUID(Globally Unique Identifier)全局唯一标识符,其广泛应用于各种程序中,在一些场景下,我们经常使用GUID作为主键.那么,在ABAP中,生成GUID的方式有哪些呢? 1 ...

  8. python 生成随机数的三种方法

    文章目录 1. 使用 random 包生成随机数 2. 使用 numpy 包生成随机数 3. 使用 scipy 包生成随机数 1. 使用 random 包生成随机数 可以生成 均匀分布, 高斯分布,( ...

  9. python生成相似句子_4种方法计算句子相似度

    Edit Distance 计算两个字符串之间,由一个转成另一个所需要的最少编辑次数,次数越多,距离越大,也就越不相关.比如,"xiaoming"和"xiamin&quo ...

最新文章

  1. 2013\Province_Java_A\1.世纪末的星期
  2. Mybatis官方文档——入门
  3. codeforces1440 E. Greedy Shopping
  4. 前端学习(2779):项目功能介绍
  5. xib加载的两种方式
  6. FireFox nsSessionStore.js 问题报错解决
  7. sql server management studio 修改计算机名_计算机毕业设计之SpringBoot+ES搜房网
  8. 关于pc和移动端相同网站的不同url跳转问题
  9. java的双亲委派_深入理解Java的类加载器及双亲委派机制
  10. HTTP中ip地址伪造的问题以及解决办法
  11. 科普:什么是人工智能
  12. 彩虹六号按键精灵挂机脚本制作教程
  13. 好用的飞书版固定资产管理系统
  14. 如何做一个基于微信驾校考试小程序系统毕业设计毕设作品
  15. 前端实现搜索联想时防抖功能:
  16. 阿里云OSS图片缩放处理
  17. linux打开ppt文件命令,ubuntu下命令行打开pdf/doc/ppt文件
  18. 如何安装2018matlab,MATLAB 2018a软件安装教程
  19. 美洲豹超级计算机图片,中国超级计算机发展史_美洲豹超级计算机_神威蓝光超级计算机 济南(3)...
  20. C/C++之内存调试工具GDB与Valgrind

热门文章

  1. win10电脑打开此电脑、资源管理器、任务管理器软件等突然很慢很慢,cup、内存、磁盘利用率却很低
  2. 怎样用 Python写一个股票自动交易接口的程序?
  3. 如何用java快速去掉字符串前后的双引号
  4. 校园跑腿现状如何?什么因素影响校园跑腿的发展?
  5. 安全公司Stormshield披露数据泄露,源代码被盗
  6. abc 与库存周转率
  7. 文本标注平台搭建之brat
  8. Verdi -- 保存调试的所有设置和界面
  9. 超级全面的100个思维导图模板
  10. oracle update 结合更新