Ответ 1
Try:
records = dict((record['_id'], record) for record in cursor)
Можно ли перебирать pymongo Cursor
в качестве пары ключ-значение, например a dict
? Я использую python 2.6 и pymongo 1.9.
Я пробовал это:
import pymongo
mongo = pymongo.Connection('localhost')
mongo_db = mongo['my_database']
mongo_coll = mongo_db['my_collection']
cursor = mongo_coll.find()
records = dict([(record_id, record) for record_id, record in mongo_cursor])
Но я получаю ошибку:
ValueError: too many values to unpack
Try:
records = dict((record['_id'], record) for record in cursor)
это fuction в python, который я использовал для создания ответа JSON от курсора MongoDB
def build_contacts_cursor(cursor):
''' Builds a JSON response for a given cursor
'''
response = json.loads('{}')
response_to_append_to = response['results'] = []
for idx, bp in enumerate(cursor):
response_to_append_to.append(bp)
return response