我想合併兩個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