1

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_added":{"$ date":1355126443473}、 "name": "Al Landon"} {" _id":{"$ oid": "50c5b9d92b9afbc3f1e7c90c "}、" company ":" Corrs "、" date_added ":{" $ date ":1355135449179}、" name ":" Andrew Lumsden "、" title ":"パートナー "

4

1 に答える 1

0

私が理解したように、あなたはjson文字列ではなく応答リストで戻ってきます。試す:

json_docs = json.dumps(list(result), default=json_util.default, sort_keys=True, indent=4)
于 2013-01-09T15:26:06.497 に答える