如何生成uuid字符串

时间:2019-03-13 20:39:27

标签: python uuid

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

import uuid
result = uuid.uuid4()
print result 

其结果是:

<class 'uuid.UUID'>

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

uuid_string = str(result)
print uuid_string

打印:

c389fa3c-3a5c-4d8d-ac92-9b70f2bbe0b5

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

1 个答案:

答案 0 :(得分:1)

您可以使用.hex属性获取不带-的字符串值

In [1]: import uuid

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

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

In [4]: print(result.hex)
536bc225eb6d47589b1858f265b809b1

以下是相关文档:

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)