如何通过PyMongo编写正确查询将MongoDB数据导入Pandas DataFrame
修复PyMongo查询语句的语法错误
嘿,你遇到的这个语法错误其实很好解决——问题出在MongoDB查询操作符的写法上!
在Python里,字典的键如果包含特殊字符(比如$),必须用引号把它包裹起来,而你写的{$gte:100}里的$gte没有加引号,这就违反了Python的语法规则,所以才会抛出SyntaxError。
正确的查询语句写法
把$gte用双引号(或单引号)括起来,作为字典的键即可:
query = {"ans_count": {"$gte": 100}}
修正后的完整调用示例
结合你自定义的read_mongo函数,完整代码应该是这样的:
query = {"ans_count": {"$gte": 100}} df = read_mongo(mydb, collection, query=query, port=27017, username=None, password=None, no_id=True)
补充:复杂查询的写法参考
如果需要多条件组合查询,同样要遵循这个规则,比如同时筛选ans_count在100到200之间的数据:
query = {"ans_count": {"$gte": 100, "$lte": 200}}
简单来说,PyMongo里的查询字典和MongoDB Shell里的写法唯一的区别就是:所有MongoDB的操作符(以$开头的)都要作为字符串键来写,必须加引号哦!
内容的提问来源于stack exchange,提问作者Helix Herry
相关产品推荐
相关产品推荐

