- So che questo è un problema abbastanza comune. Sto scrivendo una piccola app Flask e sto cercando di alimentare alcune query alla vista. Mi sono connesso al mio setup MongoDB locale e ho eseguito una query di successo, ma non riesco a generare un oggetto json con esso.
La soluzione più comune che ho visto è quello di importare json_util da pymongo cioèconvertire il cursore pymongo in 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]
ho installato nel mio pymongo Flask virtualenv utilizzando pip vale a dire:
pip install pymongo
Durante l'esecuzione il codice sopra riportato continua a ricevere il seguente errore:
ImportError: cannot import name json_util
Posso vedere questa riga nel pymongo-2.3-py2.6.egg-informazioni/installato-files.txt ../bson/json_util.py
Chiunque ha ottenuto tutte suggerimenti che possono aiutarmi a capire quello che ho sto sbagliando?
UPDATE: Avendo noodled circa con questo un po 'più - sono riuscito a ottenere questo lavoro così:
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)
Uno dei problemi che avevo cercavo di pip installare BSON in modo indipendente - pymongo porta con sé e con lui l'importazione di errori ha causato problemi.
Grazie @Cagex per avermi nella giusta direzione
Mai "pip install bson", è il modulo obsoleto di qualcun altro. Solo "pip installa pymongo" per ottenere i moduli ufficiali pymongo, bson e gridfs. –