Python MongoDB-如何将ObjectId和datetime显示为字符串(使用bson.json_util)

Python MongoDB-如何将ObjectId和datetime显示为字符串(使用bson.json_util),python,mongodb,pymongo,Python,Mongodb,Pymongo,因此,我不知道如何使用该类将ObjectId和datetime转换为字符串 我知道您可以使用转储,然后从pymongo游标加载,但问题是在加载之后,我仍然将“_id”作为ObjectId,将datetime作为datetime对象 我的代码: all_cats = db.cats.find() foo = dumps(all_cats) print loads(foo) [{ u'c': u'this is a comment', u'd': datetime.datetime

因此,我不知道如何使用该类将ObjectId和datetime转换为字符串

我知道您可以使用
转储
,然后从pymongo游标
加载
,但问题是在加载之后,我仍然将“_id”作为ObjectId,将datetime作为datetime对象

我的代码:

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')
}]

这些贵重物品是Pymongo的标准

可以使用以下方法在Python中进行转换:

_ID使用str(object),因为它是bson.objectid.objectid(它是函数而不是方法)

D使用D.strftime(“%Y-%m-%D%H:%m:%S”),因为是日期时间,所以可以根据需要更改格式

例如:

from pymongo import MongoClient
# making a Connection with MongoClient
client = MongoClient()
#client = MongoClient('localhost', 27017)
# getting a Database
db = client.local
# getting a Collection
test = db['foo2']
#print test
item = test.find_one()
print 'Hello %s!' % item
#example Date
d = item['birth']
dString = d.strftime("%Y-%m-%d %H:%M:%S")
print 'D: %s' % d
print 'Type D: %s' % type(d)
print 'DString: %s' % dString
print 'Type DString: %s' % type(dString)
#example _ID
id = item['_id']
idString = str(id)
print 'ID: %s' % id
print 'Type ID: %s' % type(id)
print 'IDString: %s' % idString
print 'Type IDString: %s' % type(idString)

str(所有猫[0]['''''']]都会给你一个“id”,因为字符串d包含一个python日期对象。你可以按你喜欢的方式格式化它。当你做
foo[0]['''''''.[id]]
?@nickmilon时会发生什么?是的,谢谢,我正在考虑这样做,但是我不喜欢这样的事实,如果我有一百万行,我将不得不对所有项目进行for循环,并将每个项目从objectid转换为string,从datetime转换为string
from pymongo import MongoClient
# making a Connection with MongoClient
client = MongoClient()
#client = MongoClient('localhost', 27017)
# getting a Database
db = client.local
# getting a Collection
test = db['foo2']
#print test
item = test.find_one()
print 'Hello %s!' % item
#example Date
d = item['birth']
dString = d.strftime("%Y-%m-%d %H:%M:%S")
print 'D: %s' % d
print 'Type D: %s' % type(d)
print 'DString: %s' % dString
print 'Type DString: %s' % type(dString)
#example _ID
id = item['_id']
idString = str(id)
print 'ID: %s' % id
print 'Type ID: %s' % type(id)
print 'IDString: %s' % idString
print 'Type IDString: %s' % type(idString)