Python中datetime.datetime对象的正确None或null条目是什么?

 谁的围脖搞笑排行榜 发布于 2023-02-12 19:02

我正在使用pymongo将一些日期加载到mongodb中.因为pymongo自动转换为BSON,我正在使用datetime的datetime.strptime函数将输入字符串如"12/04/2013"​​转换为Date对象,如下所示:

>>> datetime.datetime.strptime("12/04/2013",'%m/%d/%Y')
datetime.datetime(2013, 12, 4, 0, 0)

这样它们就可以使用标准的mongo查询进行搜索.

我的问题是:我还想表示我不知道什么日期的东西是等价的None,所以我可以None对它进行空值测试.我知道我可以把这个日期放在过去或未来的一个try-catch块进入''或者很远None,但这是hacky思考,我宁愿用一个合适的None-type来表示实际上是什么.

如何输入无日期时间?

1 个回答
  • 当您搜索MongoDB时null,缺少的值是等效的.

    > db.foo.insert({a: null})
    > db.foo.insert({})
    db.foo.find({a: null}, {_id: 0})
    { "a" : null }
    {  }
    

    它的工作方式与pymongo以下方式相同:

    >>> [doc for doc in pymongo.MongoClient().test.foo.find({'a': None}, {'_id': 0})]
    [{u'a': None}, {}]
    

    所以None似乎是个不错的选择.它与Python语义一致,它使用dict.get方法的默认行为很好,并且在使用Python驱动程序时直观地映射到MongoDB类型.

    2023-02-12 19:03 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有