получить UUID из 8 символов - PullRequest
1 голос
/ 03 марта 2020

Как получить только 8 символов? Я сделал строку кода ниже и получил uuid из 36 символов.

id1 = str(uuid.uuid1())

Ответы [ 2 ]

3 голосов
/ 03 марта 2020

Правильный ответ

Правильный ответ на этот вопрос, ответ на который здесь заключается в том, что невозможно сгенерировать 8-символьный uuid, поскольку uuids по определению составляет 16 байт.

Стандарт для UUID указан в RF C 4221 . В разделе формат первые слова:

Формат UUID - 16 октетов

Спасибо shudipta-sharma за то, что я заметил, что мой оригинальный ответ НЕ даст универсально уникальный идентификатор.

Старый (и неправильный) ответ

Вы можете просто взять первые восемь символов.

id1 = str(uuid.uuid1())[:8]

Нет гарантий, что все они уникальны.

0 голосов
/ 03 марта 2020

Вы можете попробовать это:

import string, random

# ''.join() joins the letters from random.choices() into a single Python str of length k.
join=''.join
join(random.choices(string.ascii_letters, k=8)) # Output is like as 'XDCxVAJl'

Ресурс: модуль Python's string содержит ряд полезных констант: ascii_lowercase, ascii_uppercase, string.punctuation, ascii_whitespace, string. шестнадцатеричные числа и несколько других.

Ссылка: https://realpython.com/python-random/

...