Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:`MergeDict`已被弃用,请改用`dict.update()`_Python_Django_Dictionary_Merge - Fatal编程技术网

Python Django:`MergeDict`已被弃用,请改用`dict.update()`

Python Django:`MergeDict`已被弃用,请改用`dict.update()`,python,django,dictionary,merge,Python,Django,Dictionary,Merge,我得到这个信息: removedindjango19警告:MergeDict已被弃用,请改用dict.update()。 当前代码: return MergeDict(dict_a, dict_b) 这不是解决方案,因为dict\u a会被修改: return dict_a.update(dict_b) #1 此外,dict_a是一个自定义类的实例,它不支持复制(它是惰性的,根据键动态创建项),因此我不能简单地执行以下操作: new=dict() new.update(dict_a) ne

我得到这个信息:

removedindjango19警告:MergeDict已被弃用,请改用dict.update()。
当前代码:

return MergeDict(dict_a, dict_b)
这不是解决方案,因为
dict\u a
会被修改:

return dict_a.update(dict_b) #1
此外,
dict_a
是一个自定义类的实例,它不支持复制(它是惰性的,根据键动态创建项),因此我不能简单地执行以下操作:

new=dict()
new.update(dict_a)
new.update(dict_b)
return new
如何替换
MergeDict

您可以使用。它的作用与
MergeDict
相同:保留映射列表并按顺序访问它们


然而,实际上只执行字典的合并通常比较简单。向自定义类添加复制支持并对其进行更新可能并非不可能。

这与OP给出的代码有什么不同?问题是dict_a是懒惰的。@guettli使用
ChainMap
。@Bakuriu谢谢你的回答。链图很好用。对于所有那些固定在Python2.7上的人来说:在pypi上有一个可用的后端口: