【问题标题】:Updating values of one nested dictionary to another having list of dictionaries将一个嵌套字典的值更新到另一个具有字典列表的字典
【发布时间】:2020-12-30 00:56:50
【问题描述】:

假设我们有两个嵌套字典:

dict1={'s1':{'A':{'C':'3','D':'4'},'B':{'E':'5','F':'6'}}}

dict2 = {'s1':[{'C':'3a','D':'4a'},{'C':'3b','D':'4b'}], 'B': {'E':'5a','F':'6a'}}

我可以根据键值 dict2 替换 dict1 中的值

dict1['E']=dict2['E']

这将导致..

dict1={'s1':{'A':{'C':'3','D':'4'},'B':{'E':'5a','F':'6'}}}

现在我想在 dict1 中找到 C 和 D 并用 dict2 中的 C 和 D 列表替换 输出应该是这样的:

dict1={'s1':{'A':[{'C':'3a','D':'4a'},{'C':'3b','D':'4b'}],'B':{'E':'5a','F':'6'}}}

不影响 dict 1 中的原始键 A 和 B 我们还可以创建一个复制dict1的新字典并进行修改.. 但是dict1的结构应该保持不变

【问题讨论】:

  • dict2的类型是什么?SetDict

标签: python dictionary nested pandas-groupby dictionary-comprehension


【解决方案1】:

可能,您没有正确编写dict2,它既不是字典也不是集合。也许这 (dict2={'s1':[{'C':'3a','D':'4a'},{'C':'3b','D':'4b'}], 'B': {'E':'5a','F':'6a'}}) 就是你的意思。

如果这个假设是正确的,你可以这样改变 dict1 中键 A 的值:

dict1['s1']['A'] = dict2['s1']
print(dict1)

结果

{'s1': {'A': [{'C': '3a', 'D': '4a'}, {'C': '3b', 'D': '4b'}], 'B': {'E': '5', 'F': '6'}}}

【讨论】:

  • 是的,感谢您指出错误,已编辑问题。也感谢你的解决方案
猜你喜欢
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多