簡體   English   中英

包含包含更多詞典的列表的詞典-更新

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM