我使用Python从Mongo获取数据。我将光标中的所有文档移动到一个数组中。然后我处理文档并尝试向对象/字典添加一些新属性,但它说KeyError。我在尝试修改mongo返回的对象时,在Nodejs中看到过这种行为,解决方案是query.lean()。exec()来获取普通对象。 pymongo有同等效力吗?
答案 0 :(得分:0)
查看引发KeyError的时间:https://stackoverflow.com/a/10116540/4273834
回顾一下:如果您尝试设置密钥而不是尝试为不存在的密钥获取值,则不会引发KeyError。
这是一个有效的代码片段:
cursor = col.find({})
my_list = list(cursor)
my_list[0]['added_field'] = 'whatever'
只是旁注:list(游标)不是如何在python中处理数据的方式。推荐的方法是直接循环游标(除非有特定的理由要有列表......):
for doc in cursor:
doc['new_key'] = 'test'
do_whatever_you_want_with_the_doc(doc)