使用多个词典复制字典键

时间:2017-02-09 15:55:59

标签: python dictionary

我有一个名为" session"包含以下内容:

{
    'odbs': {'steps1': {'tension': 3, 'comp': 3}},
    'odbdata': {'steps2': {'tension': 500, 'Session Step': {'Frame': 5000}, 'comp': 30}}
}

正如您所看到的,odbs内的odbdatasession字典以及Session Step内的steps2字典

我想将Session Step字典复制到steps1字典中,而不替换其中的现有值。我尝试过更新,但它取代了其他值。我想要' odbs'字典成为

'odbs': {'steps1': {'tension': 3, 'Session Step': {'Frame': 5000}, 'comp': 3}}

4 个答案:

答案 0 :(得分:1)

我不确定我是否理解这个问题,但是如何:

data = {
    'odbs': {'steps1': {'tension': 3, 'comp': 3}},
    'odbdata': {'steps2': {'tension': 500, 'Session Step': {'Frame': 5000}, 'comp': 30}}
}

data['odbs']['steps1']['Session Step'] = data['odbdata']['steps2']['Session Step']

我建议不要使用所有这些硬编码值......也许这里的几个类很有用,或者键字符串至少有一些CONST值。

答案 1 :(得分:0)

从你的问题看,这可能有效

data['odbs']['steps1']['Session Step'] = data['odbdata']['steps2']['Session Step']

答案 2 :(得分:0)

data = {
    'odbs': {'steps1': {'tension': 3, 'comp': 3}},
    'odbdata': {'steps2': {'tension': 500, 'Session Step': {'Frame': 5000}, 'comp': 30}}
}

to_update = data['odbs']['steps1']

source = data['odbdata']['steps2']['Session Step']
to_update.update(source)

出:

{'odbdata': {'steps2': {'Session Step': {'Frame': 5000},
   'comp': 30,
   'tension': 500}},
 'odbs': {'steps1': {'Frame': 5000, 'comp': 3, 'tension': 3}}}

答案 3 :(得分:0)

您只需将密钥Session Step添加到steps1字典,然后将其初始化为Session Stepsteps2的值。

session['odbs']['steps1']['Session Step'] = session['odbdata']['steps2']['Session Step']

那就是说,你能否避免在两个词典中都有同样的价值?也许通过将价值分解为常数,或通过重组字典?