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_date
和end_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。如何显示从 python 到 html 的所有条目?
如何使用 flask_pymongo 将数据从 mongodb 显示到烧瓶模板?
使用烧瓶中的 send_file() 时文件损坏,pymongo gridfs 中的数据