【发布时间】:2011-09-09 11:14:42
【问题描述】:
我正在尝试在我的 HTTP 响应中发回一个 JSON 编码的 MongoDB 对象。我已经关注了其他几个类似的问题,但仍然缺少一些东西。没有抛出异常,但我在浏览器中得到了一个神秘的 <api.views.MongoEncoder object at 0x80a0c02c> 响应。我确信这很简单,但我们将不胜感激。
功能:
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。
【问题讨论】:
标签: django mongodb pymongo simplejson