Im пытается создать результат JSON с Pymongo, Mongodb и Django. Я создал представление Django, содержащее запрос pymongo и хочу вернуть результаты в json. Тем не менее, результаты, полученные arent valid json (согласно jsonlint)Запрос Pymongo & Django недействителен JSON
Вот мой взгляд 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": { "$ подъязычная": "50c596ab2b9afbbc85ed202a" }, "DATE_ADDED": { "дата $": 1355126443473 }, "имя": "Аль Лэндон" } { "_id": { "$ подъязычная": "50c5b9d92b9afbc3f1e7c90c" }, "компания": "Corrs", "DATE_ADDED": { "$ дата": 1355135449179 }, "имя": " Andrew Lumsden ", " title ":" Партнер "
это как-то два этапа сериализации. вы используете json.dumps для каждого элемента списка. Правильно ли я предполагаю, что ваш желаемый json должен выглядеть так: {"obj": [{"_id": {"$ oid": "12323"}, "date_added": {"$ date": 1355126443473}, " name ":" Al Landon "}, {" _ id ": {" $ oid ":" 50c5b9d92b9afbc3f1e7c90c "}," company ":" Corrs "," date_added ": {" $ date ": 1355135449179}," name ": «Andrew Lumsden», «title»: «A Partner»}]} –
Это правильно, вот как мой желаемый json должен выглядеть – CraigH