使用 COUNT 在 sqlite3 中查找 table 中的行数

Using COUNT to find number of rows in table in sqlite3

我尝试了各种方法,但我总是收到返回的对象。

import sqlite3

connection = sqlite3.connect('films.db')
cur = connection.cursor()

def createTable():

    connection.execute('CREATE TABLE IF NOT EXISTS FILMS(TITLE TEXT NOT NULL , YEAR INT NOT NULL,RATING INT NOT NULL,unique(TITLE))')
    connection.execute('INSERT OR IGNORE INTO FILMS VALUES(? , ? , ?)',('Middle Men','2010','6.6'))
    connection.execute("SELECT * FROM FILMS")

    row_count = cur.execute("SELECT Count(*) FROM FILMS")
    print(row_count)

    cur.close()
    connection.commit()
createTable()

当我打印计数时,我不断返回这个光标对象: sqlite3.Cursor 对象位于 0x027CE820 是否有一个原因?我的语法错了吗?

您正在获取整个对象。而不是:

    row_count = cur.execute("SELECT Count(*) FROM FILMS")

做:

cur.execute("SELECT Count(*) FROM FILMS")
row_count = cur.fetchone()
print(row_count)

这将获取其中包含计数的行。如果你正在做一个有多行的 select,你可以做

cur.fetchall()