- Я знаю, что это довольно распространенная проблема. Я пишу небольшое приложение Flask, и я пытаюсь передать некоторые запросы обратно в представление. Я подключился к локальной настройке MongoDB и сделал успешный запрос, но я не могу сгенерировать с ним объект json.
Наиболее распространенным решением, которое я видел, является импорт json_util из pymongo i.e.
import json
from pymongo import json_util
results = connection.get_collection('papayas_papaya')
results = results.find({
'identifier': '1',
})
serialized_results = [json.dumps(result, default=json_util.default, separators=(',', ':')) for result in results]
Я установил pymongo в свой Flask virtualenv, используя pip i.e:
pip install pymongo
При запуске вышеуказанного кода я получаю следующую ошибку:
ImportError: cannot import name json_util
Я вижу эту строку в файле pymongo-2.3-py2.6.egg-info/installed-files.txt .. /BSON/json _util.py
У кого-нибудь есть подсказки, которые могут помочь мне понять, что я делаю неправильно?
UPDATE: Немного поправившись с этим - мне удалось заставить это работать таким образом:
import pymongo
from bson.json_util import dumps
connection = pymongo.Connection("localhost", 27017)
db = connection.mydocs
def get():
cursor = db.foo.find({"name" : "bar"})
return dumps(cursor)
Одна из проблем, с которыми я столкнулась, заключалась в том, чтобы попытаться установить install bson самостоятельно - pymongo приносит с собой bson и импортирует проблемы, вызванные отдельными причинами.
Спасибо @Cagex за то, что указали мне в правильном направлении