Как вставить строку datetime как этот "2017-10-13T10:53:53.000Z"
в mongo db как ISODate? Я получаю строку в MongoDB, когда я вставляю: datetime.strptime("2017-10-13T10:53:53.000Z", "%Y-%m-%dT%H:%M:%S.000Z")
Как вставить строку datetime в Mongodb как ISODate с помощью pymongo
9
A
ответ
8
Это работает для меня, вы получите другой результат?
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})
Проверить в Монго:
> use test
switched to db test
> db.dates.findOne()
{
"_id" : ObjectId("589307d7cfd6c908d4b677d6"),
"date" : ISODate("2017-10-13T10:53:53Z")
}
UPDATE: Как прокомментировал, если вы получаете «время данные не соответствует формату» ошибка, попробуйте более общий формат строки, такие как: %Y-%m-%dT%H:%M:%S.%fZ
+1
Я получил данные о времени не соответствует формату ", и ему пришлось немного изменить строку формата:"% Y-% m-% dT% H:% M:% S.% f Z» – Mirko
1
использование dateutil
dateutil.parser.parse("2017-10-13T10:53:53.000Z")
вернется datetime.datetime(2017, 10, 13, 10, 53, 53, tzinfo=tzutc())
Взгляните: https://docs.mongodb.com/manual/core/shell-types/ и https://docs.mongodb.com/manual/reference/method/Date/ –