Trong các phiên bản mới hơn của simplejson
(và json
mô-đun trong Python 2.7) bạn triển khai default
trong các lớp con của bạn:
from json import JSONEncoder
from pymongo.objectid import ObjectId
class MongoEncoder(JSONEncoder):
def default(self, obj, **kwargs):
if isinstance(obj, ObjectId):
return str(obj)
else:
return JSONEncoder.default(obj, **kwargs)
Sau đó, bạn có thể sử dụng bộ mã hóa với MongoEncoder().encode(obj)
hoặc json.dumps(obj, cls=MongoEncoder)
.