分散システム上のキー等で最近何かと使うことが多くなったuuid、Pythonで生成する方法について学習しましょう。
uuid
標準ライブラリでその名もずばりuuidというモジュールがあります。バージョンごとに、uuidX(Xはバージョン番号)というメソッドがありますのでこれで生成することが可能です。
uuid バージョン1/4
特に説明は不要かと思いますが、以下の通りメソッドを実行するとuuidを得ることができます。戻り値の型はuuid.UUIDとなります。文字列に変換する場合はstr関数を使用します。
import uuid uuid.uuid1() # UUID('ab88ca48-f926-11e7-ac56-7429af3f3f5b') uuid.uuid4() # UUID('784d08a8-f39a-4ba0-ac13-6440688b54fd') # 文字列で取得する場合 str(uuid.uuid1()) # '1f749568-f927-11e7-ac56-7429af3f3f5b'
なお、uuid.UUIDオブジェクトは属性として、16進数文字列やバージョンを持っています。
import uuid uuid_obj = uuid.uuid1() # 16進数文字列 uuid_obj.hex # 8e1049eaf92711e7ac567429af3f3f5b # バージョン uuid_obj.version # 1 #
バージョン 3/5
uuid3、uuid5の場合、第1引数に名前空間の種類、ドメイン名などのユニーク文字列は第2引数に指定します。
import uuid uuid.uuid3(uuid.NAMESPACE_DNS, "ambitious-engineer.com") # UUID('e23d41c3-1be2-3de2-862c-e59a1682c95d') #
FQDN、URLを名前空間で指定する場合、以下のとおりとなります。
- uuid.NAMESPACE_DNS:FQDN
- uuid.NAMESPACE_URL:URL