2012-11-05 12 views
24
  • 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

+2

Nigdy "pip install bson", czyli czyjś przestarzały moduł. Tylko "Pimp zainstalować pymongo", aby uzyskać oficjalne moduły pymongo, bson i gridfs. –

Odpowiedz