TypeError:'Cursor' 类型的对象没有 len()
Posted
技术标签:
【中文标题】TypeError:\'Cursor\' 类型的对象没有 len()【英文标题】:TypeError: object of type 'Cursor' has no len()TypeError:'Cursor' 类型的对象没有 len() 【发布时间】:2013-04-18 17:13:21 【问题描述】:我收到此错误:
TypeError: 'Cursor' 类型的对象没有 len()
当我尝试执行时:
reply = db['test'].find("date":"$gt":date_query ,"date":1,"route_id":1,"loc":1,"_id":0)
length = len(reply)
【问题讨论】:
这是因为您所做的只是定义了作为服务器查询请求的游标 - 您实际上并没有得到一组结果(因为通常您会遍历一个游标来获取批量文件)。 【参考方案1】:pymongo cursor 有一个方法 count()
将返回您要查找的内容:
reply = db['test'].find(
"date":"$gt":date_query,
"date":1,"route_id":1,"loc":1,"_id":0
)
length = reply.count()
【讨论】:
【参考方案2】:从Mongo 4.0.3
/PyMongo 3.7.0
开始,您也可以在cursor
上使用count_documents
而不是count
:
db.collection.count_documents( "a": 2 )
# where "a": 2 is whatever filtering query
db.collection.count_documents
是现已弃用的db.collection.count
的替代品。
【讨论】:
【参考方案3】:是的,伯爵会为您完成这项工作。
length = reply.count()
或
length = reply.count(with_limit_and_skip=False)
不得不忍受很多,因为长度 = count(reply) 也不起作用。由于我还不允许发表评论,所以想留下这个答案。希望这将有助于某人节省一些时间。
【讨论】:
以上是关于TypeError:'Cursor' 类型的对象没有 len()的主要内容,如果未能解决你的问题,请参考以下文章
mysql-connector-python cursor_cent.py 文件上的 Django 迁移错误“TypeError:序列项 1:预期类似字节的对象,str found”
`TypeError: argument 2 must be a connection, cursor or None` 在 Psycopg2
TypeError: 'float' 类型的对象没有 len() & TypeError: 'float' 对象不可迭代
Python - TypeError: '...' 类型的对象没有 len()