如何使用pymongo将日期时间字符串作为ISODate插入Mongodb

时间:2017-02-02 09:58:54

标签: python pymongo

如何将此"2017-10-13T10:53:53.000Z"之类的日期时间字符串作为ISODate插入到mongo db中? 插入时,我在mongodb中得到一个字符串:  datetime.strptime("2017-10-13T10:53:53.000Z", "%Y-%m-%dT%H:%M:%S.000Z")

2 个答案:

答案 0 :(得分:14)

这对我有用,你会得到不同的结果吗?

from pymongo.mongo_client import MongoClient
import datetime

d = datetime.datetime.strptime("2017-10-13T10:53:53.000Z", "%Y-%m-%dT%H:%M:%S.000Z")

with MongoClient() as mongo:
    db = mongo.get_database("test")
    db['dates'].insert({"date" : d})

签入mongo:

> use test
switched to db test
> db.dates.findOne()
{
    "_id" : ObjectId("589307d7cfd6c908d4b677d6"),
    "date" : ISODate("2017-10-13T10:53:53Z")
}

更新:评论时,如果您收到“时间数据格式不匹配”​​错误,请尝试使用更通用的格式字符串,例如:%Y-%m-%dT%H:%M:%S.%fZ

答案 1 :(得分:1)

使用dateutil dateutil.parser.parse("2017-10-13T10:53:53.000Z") 将返回datetime.datetime(2017, 10, 13, 10, 53, 53, tzinfo=tzutc())