布尔值签入 python

Boolean checking in python

我有一个函数如下 return 布尔值:

def is_new_records(conn, value):
    """
    Check if value already exists
    """
    with conn:
        with conn.cursor() as cursor:
            query = """
            select not exists (select * from table
            where value = '{value}')
            """.format(value=value)
            cursor.execute(query)
            exists = cursor.fetchone()
            return exists

函数将 return true/false 无论数据库中是否存在值。现在我就是这样调用这个函数的:

if is_new_records(connection, value):

        # do something
else:
        # do seomthing else

现在,当它 return 为真时,它会在 if 中执行代码块,但即使它 return 为假,它也会在 if 中执行代码块。我的假设是。 if 条件正在检查值 returned 是否为 而不是 None.

该函数返回的是元组而不是布尔值:

def is_new_records(conn, value):
    """
    Check if value already exists
    """
    with conn:
        with conn.cursor() as cursor:
            query = """
            select not exists (select * from table
            where value = '{value}')
            """.format(value=value)
            cursor.execute(query)
            exists = cursor.fetchone()[0]
            return exists

此更改使其生效