使用Python while语句检查SQLite表中是否存在值

使用Python while语句检查SQLite表中是否存在值,python,python-3.x,numpy,sqlite,Python,Python 3.x,Numpy,Sqlite,我试图创建一个函数,该函数将生成sqlite表中不存在的标记。以下是我迄今为止所做的: def generateTag(type): elementTag = "" charSet = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "

我试图创建一个函数,该函数将生成sqlite表中不存在的标记。以下是我迄今为止所做的:

def generateTag(type):

    elementTag = ""

    charSet = ["0", "1", "2", "3", "4", "5", "6", "7", "8",
               "9", "a", "b", "c", "d", "e", "f", "g", "h",
               "i", "j", "k", "l", "m", "n", "o", "p", "q",
               "r", "s", "t", "u", "v", "w", "x", "y", "z",
               "A", "B", "C", "D", "E", "F", "G", "H", "I",
               "J", "K", "L", "M", "N", "O", "P", "Q", "R",
               "S", "T", "U", "V", "W", "X", "Y", "Z"]

    centralDBInfo = Describe(centralDBName)
    rowAmount = [int(i[2]) for i in centralDBInfo]

    while True:
        for n in range (100):
            if 62**n < rowAmount[0] or n <= 1:
                for x in range(n):
                    randomSelection = numpy.random.randint(0,62)
                    elementTag += str(charSet[randomSelection])
                break

        tagQuery = "SELECT * FROM {t}_Base WHERE {et} EXISTS".format(t = type, et = elementTag)
        rowFetch = centralCursor.execute(tagQuery)

        if rowFetch == None:
            return elementTag
def generateTag(类型):
elementTag=“”
字符集=[“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”,
“9”、“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”,
“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”,
“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”,
“A”、“B”、“C”、“D”、“E”、“F”、“G”、“H”、“I”,
“J”、“K”、“L”、“M”、“N”、“O”、“P”、“Q”、“R”,
“S”、“T”、“U”、“V”、“W”、“X”、“Y”、“Z”]
centralDBInfo=描述(centralDBName)
ROWAMMOUNT=[int(i[2]),用于CentralBinfo中的i]
尽管如此:
对于范围(100)内的n:

如果62**ntagExists
变量。我看到的另一件事是您正在重复计算
64**n
。不,我没有收到任何错误,因为CentralDB尚未填充。我不需要tagExists,以便在前面的标记已经存在的情况下尝试创建另一个标记吗?另外,我重复计算64**n,因为n一直递增到100。如果没有,则返回,这意味着
tagExists
永远不会显式设置为false。这永远是真的,你不需要。您只需执行
,而True:
。由于外部while循环,您正在一次又一次地调用
64**n
。请查看我的编辑。你认为这样行吗?我认为最后一件事是,在最坏的情况下,你可能应该在某个时候停止外部while循环。只是看起来不太好。什么是行数[0]
?因为您将100个值与单个变量进行比较。