- Wiem, że jest to dość powszechny problem. Piszę małą aplikację Flask i próbuję przekazać niektóre zapytania do widoku. Połączyłem się z moją lokalną instalacją MongoDB i pomyślnie wysłałem zapytanie - ale nie mogę wygenerować z niego obiektu json.
Najczęstszym rozwiązaniem widziałem jest import json_util z pymongo tjzamień kursor pymongo na json
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]
mam zainstalowane pymongo do mojego Kolby virtualenv użyciu pip tj:
pip install pymongo
Uruchamiając powyższy kod wciąż otrzymuję następujący błąd:
ImportError: cannot import name json_util
widzę tę linię w pymongo-2,3-py2.6.egg-INFO/zainstalowanego-files.txt ../bson/json_util.py
Ktoś ma jakieś wskazówki, które mogą mi pomóc dowiedzieć się, co ja Robię źle?
UPDATE: Po noodled temat z tym trochę dalej - Udało mi się dostać to działa tak:
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)
Jednym z problemów, ja starałem się pip zainstalować bson niezależnie - pymongo przynosi z niego banderę, a importowanie osobno powoduje problemy.
Dzięki @Cagex dla wskazujące mnie we właściwym kierunku
Nigdy "pip install bson", czyli czyjś przestarzały moduł. Tylko "Pimp zainstalować pymongo", aby uzyskać oficjalne moduły pymongo, bson i gridfs. –