Je ne suis donc pas sûr de savoir comment convertir un objet ObjectId et datetime en chaînes en utilisant la classe bson.json_util. Je comprends que vous pouvez utiliser le dumps
puis loads
à partir de pymongo cursor, mais le problème survient après que je charge, j'ai toujours le "_id" comme ObjectId et datetime comme un objet datetime.MongoDB - Comment afficher ObjectId et datetime en tant que chaîne (en utilisant bson.json_util)
mon code:
all_cats = db.cats.find()
foo = dumps(all_cats)
print loads(foo)
[{
u'c': u'this is a comment',
u'd': datetime.datetime(2015, 4, 19, 7, 16, tzinfo=<bson.tz_util.FixedOffset object at 0x10cece7d0>),
u'_id': ObjectId('55329b7de73f02d1069528f5')
}]
Alors, comment puis-je convertir le _id à "_id": "55329b7de73f02d1069528f5" et la date "d": "19/04/2015 07:16:00" ??
Merci beaucoup!
EDIT
Après lorsque tous les éléments sont convertis en chaîne, je vais revenir avec jsonify de Flask - qui ne se plaignent que « _id » est un ObjectId et « d » est un objet datetime
return jsonify(loads(foo))
str (all_cats [0] [ '_ d']) vous donnera la _id sous forme de chaîne d contient un objet date de python, vous pouvez formater comme vous le souhaitez – nickmilon
ce qui arrive quand vous faites 'foo [0] [" _ id "]'? – Heisenberg
@nickmilon - oui merci, je pensais faire cela, mais je n'aime pas le fait que si j'ai des millions de lignes je vais devoir faire une boucle sur tous les éléments et passer chaque élément de objectid en chaîne et datetime en chaîne – jonprasetyo