我想对嵌套在Python字典中的键值进行特定的更改。
例如
my_dict = {"header": {"from": "/app/510112-0b0bf05b07dc5bb03fa414642e849a11/subscribe",
"messageId": "ef6b8e50620ac768569f1f7abc6507a5", "method": "GET",
"namespace": "Appliance.System.All", "payloadVersion": 1,
"sign": "e48c24e510044d7e2d248c68ff2c10ca", "timestamp": 1601908439,
"triggerSrc": "Android"}, "payload": {}}
并且我想改变"消息ID"和"时间戳"的值。
我发现了这篇文章:-Python dictionary replace values,它几乎包含了所需的所有解决方案。
我的场景是,我希望在不使用for循环方法查找键的情况下更改嵌套值。
考虑到这一点,我尝试了更新和合并选项。
my_dict.update({'key1': 'value1', 'key2': 'value2'})
my_dict.update(key1='value1', key2='value2')
my_dict = my_dict | {'key1': 'value1', 'key2': 'value2'}
my_dict |= {'key1': 'value1', 'key2': 'value2'}
我尝试了以下方法:
my_dict |= {'header':{'messageId':9}}
my_dict = json_dict | {'header':{'messageId':9}}
my_dict.update({'header':{'messageId':9}})
my_dict.update({"header":{"messageId":'a'}})
不幸的是,虽然这些在使用非嵌套字典时都能正常工作,但当我在嵌套字典上尝试这些时,字典的该部分中的所有其他键和值都被删除了,除了我追加/更新的键和值或嵌套之外的键和值。
>>> my_dict
{'header': {'messageId': 'a'}, 'payload': {}}
这是更新嵌套字典的问题,还是我在如何使用嵌套字典的这些调用的假设中犯了一个错误?
谢谢。
1条答案
按热度按时间wlzqhblo1#
如果要更改嵌套在另一个字典中的字典中的键的值,可以引用嵌套字典的键来更改值,如下所示:
它保持条目的其余部分不变,只更改引用的键。