2015-05-19 15 views
9

न्यू MongoDB और अजगर (webapp2) के लिए में कनवर्ट python.cursor.Cursor वस्तु। तो, मैं एक MongoDB डेटाबेस से कुछ डेटा प्राप्त करने में किया गया था। लेकिन मैं लौटाए गए डेटा पर json.dumps का उपयोग करने में असमर्थ था। यहाँ मेरी कोड है:Pymongo/bson: serializable/JSON ऑब्जेक्ट

exchangedata = db.Stock_Master.find({"Country": "PHILIPPINES"}, {"_id" : 0})   
self.response.write(json.dumps(exchangedata)) 

यह एक त्रुटि फेंकता है:

TypeError: pymongo.cursor.Cursor object at 0x7fcd51230290 is not JSON serializable 

exchangedata के प्रकार pymongo.cursor.Cursor है। मैं इसे एक जेसन ऑब्जेक्ट में कैसे परिवर्तित कर सकता हूं?

+0

संबंधित: http://stackoverflow.com/questions/13241878/convert-pymongo-cursor-to-json। – alecxe

+0

वस्तुओं की एक सूची के लिए कर्सर कन्वर्ट करें: 'self.response.write (json.dumps (सूची (exchangedata)))' – Monkpit

+0

मोंगो रिटर्न एक 'cursor' एक वास्तविक' डेटा की list' के बजाय आपत्ति है। काइल ने उल्लेख किया है कि आपको इसे पहले 'सूची' में परिवर्तित करना होगा। –

उत्तर

15

उपयोग bson.json_util से उदासीनता:

>>> c = pymongo.MongoClient() 
>>> c.test.test.count() 
5 
>>> from bson.json_util import dumps 
>>> dumps(c.test.test.find()) 
'[{"_id": {"$oid": "555cb3a7fa5bd85b81d5a624"}}, {"_id": {"$oid": "555cb3a7fa5bd85b81d5a625"}}, {"_id": {"$oid": "555cb3a7fa5bd85b81d5a626"}}, {"_id": {"$oid": "555cb3a7fa5bd85b81d5a627"}}, {"_id": {"$oid": "555cb3a7fa5bd85b81d5a628"}}]' 
+0

देर से उत्तर के लिए खेद है, लेकिन धन्यवाद कि काम किया! –