[英]python dict update trouble
我在 MongoDB 中使用 Python
为什么此代码有效:
for record in connection.collection.find():
mydict = dict(record)
mydict.update({"key": "value"})
mylist.append(mydict)
结果:
{"data": [{"anotherkey": "anothervalue"},{"key": "value"}]}
这个代码不工作
for record in connection.collection.find():
mydict = dict(record).update({"key": "value"})
mylist.append(mydict)
结果:
{"data": [null, null]}
因为dict.update()
是就地的,它不会返回任何东西。 所以当你这样做时——
mydict = dict(record).update({"key": "value"})
mydict
实际上是None
,就好像一个函数在 python 中不返回任何内容一样,它默认返回None
。
然后当你这样做 - mylist.append(mydict)
- 你只是追加None
(在第二种情况下)。
更新是一个改变原始对象的就地操作:
更新([其他])
使用其他键/值对更新字典,覆盖现有键。 返回无。
您可以使用**
来获得您想要的行为:
mydict = dict(record,**{"key": "value"})
mylist.append(mydict)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.