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

+2

Mai "pip install bson", è il modulo obsoleto di qualcun altro. Solo "pip installa pymongo" per ottenere i moduli ufficiali pymongo, bson e gridfs. –

risposta

Problemi correlati