for p in db.collection.find({"test_set":"abc"}):
posts.append(p)
thejson = json.dumps({'results':posts})
return HttpResponse(thejson, mimetype="application/javascript")
字符串
在我的Django/Python代码中,由于“ObjectID”,我无法从mongo查询返回JSON。错误提示“ObjectID”不可序列化。
我该怎么做?一个简单的方法是循环:
for p in posts:
p['_id'] = ""
型
4条答案
按热度按时间vmjh9lq91#
json模块由于ObjectID等原因无法工作。
幸运的是PyMongo提供了json_util...
.允许将BSON文档专门编码和解码为Mongo扩展JSON的严格模式。这允许您将BSON文档编码/解码为JSON,即使它们使用特殊的BSON类型。
jrcvhitl2#
下面是一个简单的示例,使用pymongo2.2.1
字符串
wnvonmuf3#
编写一个处理ObjectId的自定义序列化程序非常容易。Django已经包含了一个处理小数和日期的函数,所以你可以扩展它:
字符串
现在你可以告诉
json
使用你的自定义序列化器:型
2vuwiymt4#
在Python 3.6上使用motor==1.1 pymongo==3.4.0更简单
字符串