首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cursor.rowcount给出的'int‘对象不是可调用的错误

cursor.rowcount给出的'int‘对象不是可调用的错误
EN

Stack Overflow用户
提问于 2011-07-04 09:02:45
回答 4查看 51.9K关注 0票数 5

我从sqlite3数据库中选择了值,并打印出cursor.then的计数--它给出了一个错误“int‘对象不可调用”

代码语言:javascript
运行
复制
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”对象不可调用

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-04 09:07:41

仔细阅读文档!行计数是一个属性,因此请将代码更正为:

代码语言:javascript
运行
复制
 print(self.cur.rowcount)

Cursor.rowcount虽然sqlite3模块的游标类实现了这个属性,但是数据库引擎自己对确定“受影响的行”/“选定的行”的支持是很奇怪的。

这包括SELECT语句,因为在获取所有行之前,我们无法确定查询产生的行数。

因此,您可以修改代码以使用取石

代码语言:javascript
运行
复制
self.cur.execute(strq) 
data = self.cur.fetchall()
print len(data)
票数 22
EN

Stack Overflow用户

发布于 2011-07-04 09:05:03

代码语言:javascript
运行
复制
print(self.cur.rowcount)

self.cur.rowcount是整数,而不是函数。

http://docs.python.org/library/sqlite3.html#sqlite3.Cursor.rowcount

编辑

这些文档回答您的编辑:

按照Python的要求,如果没有在游标上执行executeXX(),或者最后一个操作的行数不能由接口确定,则行计数属性“是-1”。 这包括SELECT语句,因为在获取所有行之前,我们无法确定查询产生的行数。

票数 12
EN

Stack Overflow用户

发布于 2011-07-04 09:06:34

错误信息说明了这一切。不要调用rowcount值,只需访问它:

代码语言:javascript
运行
复制
print(self.cur.rowcount)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6569313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档