python生成并处理uuid的实现方式


Posted in Python onMarch 03, 2020

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

第一次print出的s_uuid是

4717cf79-1a64-4156-a3e8-883f1b76210d

第二次print出的s_uuid是

4717cf791a644156a3e8883f1b76210d

以上这篇python生成并处理uuid的实现方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
浅谈MySQL中的触发器
May 05 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
python实现分页效果
Oct 25 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
Python之NumPy(axis=0 与axis=1)区分详解
May 27 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
Django实现文件上传下载
Oct 06 Python
python实现简单聊天功能
Jul 07 Python
python实现在线翻译功能
Mar 03 #Python
Python configparser模块配置文件过程解析
Mar 03 #Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
Mar 03 #Python
Django CSRF认证的几种解决方案
Mar 03 #Python
python实现电子词典
Mar 03 #Python
python关于变量名的基础知识点
Mar 03 #Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 #Python
You might like
记录mysql性能查询过程的使用方法
2013/05/02 PHP
php中hashtable实现示例分享
2014/02/13 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
JavaScript继承方式实例
2010/10/29 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
全面分析Python的优点和缺点
2018/02/07 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
医学实习生自我鉴定
2013/12/12 职场文书
商务助理求职信范文
2014/04/20 职场文书
网站创业计划书
2014/04/30 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
出生公证书
2015/01/23 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
Mysql Online DDL的使用详解
2021/05/20 MySQL
oracle重置序列从0开始递增1
2022/02/28 Oracle
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android