溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python生成并處理uuid的示例分析

發(fā)布時間:2021-05-18 14:45:53 來源:億速云 閱讀:153 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下python生成并處理uuid的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

UUID(Universally Unique Identifier)是通用唯一識別碼,在許多領(lǐng)域用作標(biāo)識,比如我們常用的數(shù)據(jù)庫也可以用它來作為主鍵,原理上它是可以對任何東西進(jìn)行唯一的編碼的。

作為新手一看到類似varchar(40)這樣的主鍵就覺得有點(diǎn)蒙圈了,字符串型也不能自增啊,這里就應(yīng)該應(yīng)用UUID了。

數(shù)據(jù)庫一般都有自己的辦法生成UUID,但雖然可以用,但這玩意考慮到可讀性和有點(diǎn)坑的長度還是盡量不要用這玩意做主鍵···咳,有點(diǎn)跑題···

下面就簡單說明一下python是如何生成UUID的:

python有一個模塊叫做uuid,導(dǎo)入它就可以使用它的四個方法了。注意這四個方法依次是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():這個是根據(jù)當(dāng)前的時間戳和MAC地址生成的,最后的12個字符408d5c985711對應(yīng)的就是MAC地址,因?yàn)槭荕AC地址,那么唯一性應(yīng)該不用說了。但是生成后暴露了MAC地址這就很不好了。

uuid3():里面的namespace和具體的字符串都是我們指定的,然后呢···應(yīng)該是通過MD5生成的,這個我們也很少用到,莫名其妙的感覺。

uuid4():這是基于隨機(jī)數(shù)的uuid,既然是隨機(jī)就有可能真的遇到相同的,但這就像中獎似的,幾率超小,因?yàn)槭请S機(jī)而且使用還方便,所以使用這個的還是比較多的。

uuid5():這個看起來和uuid3()貌似并沒有什么不同,寫法一樣,也是由用戶來指定namespace和字符串,不過這里用的散列并不是MD5,而是SHA1.

下面再來說一下簡單的處理,UUID中間的'-'是個比較奇怪的字符,那么應(yīng)該去掉它,這其實(shí)超簡單:

uid = str(uuid.uuid4())
suid = ''.join(uid.split('-'))

補(bǔ)充拓展:python生成uuid,并去掉中間的'-'

UUID(Universally Unique Identifier)是通用唯一識別碼,是軟件建構(gòu)的標(biāo)準(zhǔn),號稱可以對任何一種東西進(jìn)行唯一的編碼。下面來看一下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主要用來做什么

Python主要應(yīng)用于:1、Web開發(fā);2、數(shù)據(jù)科學(xué)研究;3、網(wǎng)絡(luò)爬蟲;4、嵌入式應(yīng)用開發(fā);5、游戲開發(fā);6、桌面應(yīng)用開發(fā)。

看完了這篇文章,相信你對“python生成并處理uuid的示例分析”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI