[英]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.