我有一个问题数据库。我想用6 位 ID标记它们。
我曾尝试使用uuid.uuid1()withint()但它生成一个 128 位整数,而且太长了。
我也尝试过使用,random()但该随机整数不能将数字“0”作为第一位数字。
身份证:
例如,问题 1 可以标记为050 124
我怎样才能创建这样的随机 ID?
实际上,前 3 位数字和后 3 位数字之间的空格并不重要。所以,如果这很难,请教我如何创建一个随机的 6 位数字(可以以“0”开头)
这个oneliner可以解决问题:
import random
random_id = ' '.join([str(random.randint(0, 999)).zfill(3) for _ in range(2)])
Run Code Online (Sandbox Code Playgroud)
但是要实现唯一性,需要了解有关如何对其进行检查的详细信息。例如,如果您使用原始 SQL 将其写入数据库,则需要先检查,例如SELECT id FROM my_table WHERE id=%s,%s生成 id 的位置。如果已经存在,则需要重新生成。基本上你做这样的事情:
while True:
uid = ' '.join([str(random.randint(0, 999)).zfill(3) for _ in range(2)])
if uid_exists(uid): # Your function to check if it already exist
continue
write_your_record(uid) # Do something next if not
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4327 次 |
| 最近记录: |