我从sqlite3数据库中选择了值,并打印出cursor.then的计数--它给出了一个错误“int‘对象不可调用”
strq="select * from tblsample1"
self.con = sqlite3.connect('mydb.sqlite')
self.cur = self.con.cursor()
self.cur.execute(strq)
print(self.cur.rowcount())
给出错误
TypeError:“int”对象不可调用
发布于 2011-07-04 09:07:41
仔细阅读文档!行计数是一个属性,因此请将代码更正为:
print(self.cur.rowcount)
Cursor.rowcount虽然sqlite3模块的游标类实现了这个属性,但是数据库引擎自己对确定“受影响的行”/“选定的行”的支持是很奇怪的。
这包括SELECT语句,因为在获取所有行之前,我们无法确定查询产生的行数。
因此,您可以修改代码以使用取石。
self.cur.execute(strq)
data = self.cur.fetchall()
print len(data)
发布于 2011-07-04 09:05:03
print(self.cur.rowcount)
self.cur.rowcount
是整数,而不是函数。
http://docs.python.org/library/sqlite3.html#sqlite3.Cursor.rowcount
编辑
这些文档回答您的编辑:
按照Python的要求,如果没有在游标上执行executeXX(),或者最后一个操作的行数不能由接口确定,则行计数属性“是-1”。 这包括SELECT语句,因为在获取所有行之前,我们无法确定查询产生的行数。
发布于 2011-07-04 09:06:34
错误信息说明了这一切。不要调用rowcount
值,只需访问它:
print(self.cur.rowcount)
https://stackoverflow.com/questions/6569313
复制相似问题