2017-02-02 3 views
9

Как вставить строку 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

+0

Взгляните: https://docs.mongodb.com/manual/core/shell-types/ и https://docs.mongodb.com/manual/reference/method/Date/ –

ответ

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())

 Смежные вопросы

  • Нет связанных вопросов^_^