python生成並處理uuid的實現方式

2022-10-04 14:48:26 字數 1818 閱讀 9414

uuid(universally unique identifierwww.cppcns.com)是通用唯一識別碼,在許多領域用作標識,比如我們常用的資料庫也可以用它來作為主鍵,原理上它是可以對任何東西進行唯一的編碼的。

作為新手一看到類似varchar(40)這樣的主鍵就覺得有點矇圈了,字串型也不能自增啊,這裡就應該應用uuid了。

資料庫一般都有自己的辦法生成uuid,但雖然可以用,但這玩意考慮ktmhfnincb到可讀性和有點坑的長度還是盡量不要用這玩意做主鍵咳,有點跑題

下面就簡單說明一下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-3程式設計客棧a20-ac68-e13c0560058f

print uuid.uuid4()

#14程式設計客棧4d622b-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生成uuid的方法

uuid universally unique identifier 是通用唯一識別碼,在許多領域用作標識,比如我們常用的資料庫也可以用它來作為主鍵,原理上它是可以對任何東西進行唯一的編碼的。作為新手一看到類似varchar 40 這樣的主鍵就覺得有點矇圈了,字串型也不能自增啊,這裡就應該應用uui...

python讀取檔案並處理 python檔案處理

1 讀取txt檔案 讀取stu info.txt檔案內容,並將檔案中所有學生名稱顯示出來 f open stu info.txt r lines f.readlines print lines for line in lines print line.split 0 f.close 2 csv檔案讀...

python讀取並處理CSV檔案

python讀取並處理csv檔案 import csv 將使用的檔案的名稱儲存在filename中 filename sitka weather 07 2014.csv 開啟該檔案,並將檔案物件儲存在 f 中 with open filename as f reader csv.reader f h...