6
我試圖發送一個JSON編碼的MongoDB對象回我的HTTP響應。我跟着其他幾個類似的問題,但仍然錯過了一些東西。沒有例外情況發生,但我在瀏覽器中收到了一個神祕的<api.views.MongoEncoder object at 0x80a0c02c>
響應。我相信這是簡單的,但任何幫助,將不勝感激。MongoDB對象序列化爲JSON
功能:
from django.utils.simplejson import JSONEncoder
from pymongo.objectid import ObjectId
class MongoEncoder(JSONEncoder):
def _iterencode(self, o, markers = None):
if isinstance(o, ObjectId):
return """ObjectId("%s")""" % str(o)
else:
return JSONEncoder._iterencode(self, o, markers)
views.py:
user = User({
's_email': request.GET.get('s_email', ''),
's_password': request.GET.get('s_password', ''),
's_first_name': request.GET.get('s_first_name', ''),
's_last_name': request.GET.get('s_last_name', ''),
'd_birthdate': request.GET.get('d_birthdate', ''),
's_gender': request.GET.get('s_gender', ''),
's_city': request.GET.get('s_city', ''),
's_state': request.GET.get('s_state', ''),
})
response = {
's_status': 'success',
'data': user
}
return HttpResponse(MongoEncoder(response))
我在Python 2.4中,pymongo,simplejson。
完美!謝謝。 – Donnie 2011-06-06 18:01:18
謝謝!爲我節省了很多時間,找出答案。 – 2012-05-14 00:54:50
如果您找不到pymongo.objectid,請嘗試bson.objectid。 – 2012-11-30 08:41:26