You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python datetime操作MongoDB时fromisoformat类型错误求助

问题排查与解决

核心错误原因

  • fromisoformat方法误用:这个方法的作用是将ISO格式的字符串转换为datetime对象,但你传入的userdate已经是通过datetime.datetime(year, month, day)生成的datetime对象,完全不需要二次转换,这直接触发了"argument must be str"的类型错误。
  • 语法与命名错误:
    • 查询条件的字典格式错误:“createdat”{“$lte”: ...}缺少键值对的冒号,正确写法是"createdat": {"$lte": ...}
    • 变量大小写不匹配:定义的是Year=2023,但创建datetime时用的是year,Python大小写敏感,会引发NameError
    • 关键字错误:For需小写为for,Python关键字必须小写

修正后的代码

import datetime
# 假设已完成MongoDB连接初始化,获取到集合collec
year = 2023
month = 4
day = 28
user_date = datetime.datetime(year, month, day)

for rec in collec.find({"createdat": {"$lte": user_date}}):
    print(rec)

补充说明

MongoDB的日期字段存储为ISODate类型,Python的datetime对象可以直接与它进行比较,无需额外格式转换。另外建议变量名遵循PEP8规范(如user_date代替Userdate),提升代码可读性。

内容的提问来源于stack exchange,提问作者Amna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:15:16