Python 包含包含更多Dict的列表的Dict-更新
下面我有一个简单的程序。我打算合并这两本词典。但我不想复制任何关于偏移量、限制和结果的值。只有键标记的项和该项下的列表,其中包含更多字典 我的问题是,我可以将列表拉到、项下并将其存储在一个变量中,该变量会删除其他键,但是当我将其添加到其他列表中时,它会替换值,而不是更新 例如,我有两本字典:Python 包含包含更多Dict的列表的Dict-更新,python,python-2.7,list,dictionary,Python,Python 2.7,List,Dictionary,下面我有一个简单的程序。我打算合并这两本词典。但我不想复制任何关于偏移量、限制和结果的值。只有键标记的项和该项下的列表,其中包含更多字典 我的问题是,我可以将列表拉到、项下并将其存储在一个变量中,该变量会删除其他键,但是当我将其添加到其他列表中时,它会替换值,而不是更新 例如,我有两本字典: my_dict: {'status': 'ok', 'result': {'items': [{'Test': 1000}, {'Test2': 2000}]}} my_dict2: {'status':
my_dict: {'status': 'ok', 'result': {'items': [{'Test': 1000}, {'Test2': 2000}]}}
my_dict2: {'status': 'ok', 'result': {'items': [{'Test3': 1000}, {'Test4': 2000}]}}
我期望的结果是:
my_dict2: {'status': 'ok', 'result': {'items': [{'Test3': 1000}, {'Test4': 2000}, {'Test': 1000}, {'Test2': 2000}]}}
但我得到:
my_dict2: {'status': 'ok', 'result': {'items': [{'Test': 1000}, {'Test2': 2000}]}}
代码:
您的示例看起来很正常,因为如果字典中存在给定的键,字典更新方法将覆盖值 my_dict2的键'result'的值为{'items':[{'Test3':1000},{'Test4':2000}]} 您正在使用my_dict_值重写'result'的值,该值为{'items':[{'Test':1000},{'Test2':2000}]} 要获得预期结果,您可能需要尝试:
my_dict2['result']['items'].extend(my_dict_values)
您正在使用update覆盖“结果”值,可能会更改行
my_dict2.update({'result': {'items': my_dict_values}})
到
我会帮你做的你正在更新我的dict2,而你真的只是想更新我的dict2['items')。@Patrick Haugh感谢你编辑我的帖子。我忘了为顶部添加代码剪报-@Paul是的,这似乎正是我正在做的,接受答案给了我正确的函数。谢谢你,伙计-啊,谢谢你!我知道这很简单,我做错了。我只是误解了更新功能。
my_dict2.update({'result': {'items': my_dict_values}})
my_dict2['results']['items'] += my_dict_values