如何生成uuid字符串

alp*_*ric 10 python uuid

使用uuid模块,我可以使用以下命令生成唯一的字符串(例如c389fa3c-3a5c-4d8d-ac92-9b70f2bbe0b5):

import uuid
result = uuid.uuid4()
print result 
Run Code Online (Sandbox Code Playgroud)

结果是:

<class 'uuid.UUID'>
Run Code Online (Sandbox Code Playgroud)

现在,为了获取生成的字符串,我需要调用str()函数:

uuid_string = str(result)
print uuid_string
Run Code Online (Sandbox Code Playgroud)

打印:

c389fa3c-3a5c-4d8d-ac92-9b70f2bbe0b5
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更短的方法将 uuid 文本字符串生成为字符串(无需使用str()函数)。

小智 8

您可以使用该.hex属性来获取字符串值,而无需-

In [1]: import uuid

In [2]: result = uuid.uuid4()

In [3]: result.hex
Out[3]: '536bc225eb6d47589b1858f265b809b1'

In [4]: print(result.hex)
536bc225eb6d47589b1858f265b809b1
Run Code Online (Sandbox Code Playgroud)

这是相关文档:

UUIDs have these read-only attributes:

bytes       the UUID as a 16-byte string (containing the six
            integer fields in big-endian byte order)

bytes_le    the UUID as a 16-byte string (with time_low, time_mid,
            and time_hi_version in little-endian byte order)

fields      a tuple of the six integer fields of the UUID,
            which are also available as six individual attributes
            and two derived attributes:

        time_low                the first 32 bits of the UUID
        time_mid                the next 16 bits of the UUID
        time_hi_version         the next 16 bits of the UUID
        clock_seq_hi_variant    the next 8 bits of the UUID
        clock_seq_low           the next 8 bits of the UUID
        node                    the last 48 bits of the UUID

        time                    the 60-bit timestamp
        clock_seq               the 14-bit sequence number

hex         the UUID as a 32-character hexadecimal string

int         the UUID as a 128-bit integer

urn         the UUID as a URN as specified in RFC 4122

variant     the UUID variant (one of the constants RESERVED_NCS,
            RFC_4122, RESERVED_MICROSOFT, or RESERVED_FUTURE)

version     the UUID version number (1 through 5, meaningful only
            when the variant is RFC_4122)
Run Code Online (Sandbox Code Playgroud)