pymongo 查询未在烧瓶中返回任何内容

Posted

技术标签:

【中文标题】pymongo 查询未在烧瓶中返回任何内容【英文标题】:pymongo query not returning anything in flask 【发布时间】:2021-06-03 21:59:39 【问题描述】:

所以我有 api.py (flask restplus api),我有代码来查询我的数据库并返回结果。当我打印结果时它是空的,我不知道为什么。查询代码在另一个不是基于 api 的文件中工作,所以我推测它与 api 有关。有什么想法吗?

 results = list(diseases_collection.find(
                    "date_of_publication":
                        '$gte':start_date.replace("T", " "),
                        '$lte': end_date.replace("T", " ")
                    
                ))                        
 print(results)
 return jsonify(results)

【问题讨论】:

你可以尝试用dateutil.parser.parse(start_or_end_date) 代替'$gte''$lte' 字段而不是字符串。 嗨 sid,我得到 dateutil.parser._parser.ParserError: Unknown string format: "2009-10-01T08:45:10" 你能打印出字符串start_dateend_date 它们的确切值是多少?我认为日期解析失败有一些不需要的字符。尝试打印print([c for c in start_date])。这将显示每个字节。 还可以尝试在解析器dateutil.parser.parse(start_or_end_date, fuzzy=True) 中添加fuzzy=True ['"', '2', '0', '0', '9', '-', '1', '0', '-', '0', ' 1'、'T'、'0'、'8'、':'、'4'、'5'、':'、'1'、'0'、'"'] 【参考方案1】:

从 API 调用中清除用户输入总是更好。

import dateutil.parser

results = list(diseases_collection.find(
                    "date_of_publication":
                        '$gte': dateutil.parser.parse(start_date, fuzzy=True),
                        '$lte': dateutil.parser.parse(end_date, fuzzy=True)
                    
                ))
 print(results)
 return jsonify(results)

【讨论】:

以上是关于pymongo 查询未在烧瓶中返回任何内容的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pymongo 时如何查询所有,组?不使用积累?

烧瓶-PyMongo。如何显示从 python 到 html 的所有条目?

如何使用 flask_pymongo 将数据从 mongodb 显示到烧瓶模板?

使用烧瓶中的 send_file() 时文件损坏,pymongo gridfs 中的数据

对 Spark Thrift Server 的直线查询未在 Spark History UI 中显示任何内容

无法使用 MySQL 在烧瓶中执行查询