Как рандомизировать числа чтобы при большом числе итераций они не повторялись?
У меня работает бот, отправляющий большое количество запросов к сайту с параметром, который должен быть уникален при каждом запросе.
Сначала я пробовал присваивать ему значение time.time()*1000, но иногда запросы посылались одновременно. Потом я пробовал присвоить random.uniform(0, 10^8), но и в таком случае иногда бот падает.
Какой есть эффективный способ генерации числа так, чтобы оно не повторилось?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Для получения случайного глобального уникального идентификатора можно воспользоваться стандартным модулем uuid:
In [8]: from uuid import uuid1, uuid3, uuid4, uuid5
In [9]: uuid4()
Out[9]: UUID('f2feff6a-df8e-43aa-bcd1-9ad0ababdd22')
In [10]: uuid4().int
Out[10]: 172456381865547334548545134784325968087
In [11]: uuid4().hex
Out[11]: 'b7d0c276460840c189ebf37e02fb97e9'
In [12]: uuid4().urn
Out[12]: 'urn:uuid:ca140af2-761c-4f41-9ac6-837b6c5d437e'