我试图用Pymongo,Mongodb和Django创建一个JSON结果。我创建了一个包含pymongo查询的Django视图,并希望在json中返回结果。但是,产生的结果是无效的json(根据jsonlint)
这是我的django视图。
from django.http import HttpResponse
import pymongo
from datetime import datetime, timedelta
import json
from bson import json_util
#setup database connection
try:
conn = pymongo.Connection()
db = conn.mydatabase
except:
print('Error: Unable to connect to database.')
conn = None
def querypeople(request):
result = db.people.find({}).sort('name')
json_docs = []
for doc in result:
json_doc = json.dumps(doc, default=json_util.default, sort_keys=True, indent=4)
json_docs.append(json_doc)
return HttpResponse(json_docs, content_type='application/json')
产生此输出。 (注意每个文档和[]之间缺少逗号应该包含整个结果。这使得JSON无效。)我做错了什么?
“_ id”:{ “$ oid”:“50c596ab2b9afbbc85ed202a” }, “添加日期”: { “$ date”:1355126443473 }, “名字”:“Al Landon” } { “_ID”: { “$ oid”:“50c5b9d92b9afbc3f1e7c90c” }, “公司”:“科尔斯”, “添加日期”: { “$ date”:1355135449179 }, “名字”:“安德鲁·拉姆斯登”, “标题”:“合作伙伴”
答案 0 :(得分:0)
据我了解,你返回的是响应列表,而不是json字符串。尝试:
json_docs = json.dumps(list(result), default=json_util.default, sort_keys=True, indent=4)