[英]Dict containing a list containing more dicts - Updating
下面我有一个简单的程序。 我打算做的是将两个字典合并。 但我不想复制任何有关偏移,极限,结果的值。 只是标有“ Items”的键及其下的列表,其中包含更多词典。
我的问题是我可以将列表拖到项目下,并将其存储在删除其他键的变量中,但是当我将其添加到其他列表而不是更新时,它将替换值。
例如我有两个字典:
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_dict = {
"status": "ok",
"result": {
"offset": 0,
"limit": 1000,
"total": 839,
"items": [
{
}
]
}
}
my_dict2 = my_dict
my_dict.update({'result': {'items': [{'Test': 1000},{'Test2': 2000}]}})
my_dict_values = my_dict['result']['items']
my_dict2.update({'result': {'items': [{'Test3': 1000},{'Test4': 2000}]}})
print "Before: %s" % (my_dict2)
my_dict2.update({'result': {'items': my_dict_values}})
print "After: %s" % (my_dict2)
您的示例似乎很正常,因为如果字典中存在给定的键,则字典update()方法将覆盖值。
my_dict2
具有键'result'
,其值为{'items': [{'Test3': 1000},{'Test4': 2000}]}
。
您正在使用my_dict_values
覆盖'result'
的值,该值是{'items': [{'Test': 1000}, {'Test2': 2000}]}
为了获得预期的结果,您可能想尝试:
my_dict2['result']['items'].extend(my_dict_values)
您正在使用update覆盖“结果”值,可能会更改该行
my_dict2.update({'result': {'items': my_dict_values}})
至
my_dict2['results']['items'] += my_dict_values
会为你做
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.