我想合并两个Python字典添加剂,像这样:如何合并两个Python字典添加剂?
a = {'result': {'sessionId': '111'}}
b = {'result': {'completelyOtherSessionId': '100'}}
##magic##
c = {'result': {'sessionId': '111', 'completelyOtherSessionId': '100'}}
我想合并两个Python字典添加剂,像这样:如何合并两个Python字典添加剂?
a = {'result': {'sessionId': '111'}}
b = {'result': {'completelyOtherSessionId': '100'}}
##magic##
c = {'result': {'sessionId': '111', 'completelyOtherSessionId': '100'}}
这是一个Python2/3函数,它不会改变你给它的字典。它会创建一个新的并尝试将它们全部结合起来。请记住,它不会以任何高级方式处理冲突。它只是用最右边的词典参数覆盖它。
def add_dicts(*dicts):
ret, dicts = dict(), list(dicts)
dicts.insert(0, ret)
try:
red = reduce
except NameError:
red = __import__("functools").reduce
red(lambda x, y: x.update(y) or x, dicts)
return ret
实施例:
a = {"a": 1}
b = {"b": 2}
c = {"c": 3}
var = add_dicts(a, b, c)
print(a) # => {"a": 1}
print(b) # => {"b": 2}
print(c) # => {"c": 3}
print(var) # => {'a': 1, 'c': 3, 'b': 2}
>>> a = {'result': {'sessionId': '111'}}
>>> b = {'result': {'sessionsId': '100'}}
>>> с = a.copy()
>>> for key in c:
>>> c[key].update(b[key])
>>> print(c)
{'result': {'sessionId': '111', 'sessionsId': '100'}}
请理解,这种解决方案仅适用于您的具体情况(a
和b
的值也是字典)。否则,update
方法将不可用,并且您会得到一个AttributeError
异常。
这是我的问题的一个很好的解决方案。有了这个我可以写出一个通用的功能。但它有点混淆,即时通讯这个问题的唯一一个... – knurzl
我看到的按键'sessionId'和'sessionsId'略有不同。那是故意的吗? –
您是否看过单页文档或有关python字典的内容?你用Google搜索“python merge dictionaries”吗? –
当然!但所有我能找到的是dict.update(otherdict)函数... – knurzl