我有一本这样的字典:
{'some_company_100': {'key1': 'value1',
'key2': 'value2',
'key3': 'value3',
'key4': 'value4',
'key5': 'value5',
'key6': {'key6_1': 'value6_1', 'key6_2': 'value6_2'},
'key7': 'value7'},
'some_company_101': {'key1': 'valuea',
'key2': 'valueb',
'key3': 'valuec',
'key4': 'valued',
'key5': 'valuee',
'key6': {'keyf_1': 'valuef_1', 'keyf_2': 'valuef_2'},
'key7': 'value7'}}
我需要把里面的字典拿出来去掉嵌套的字典。 我试过的方法是:
for key, value in final_dict.iteritems():
for k, v in value.copy().iteritems():
if isinstance(v, dict):
value.update(v)
del[k]
但问题是,内部字典中的迭代必须在字典的copy()上进行,因此,如果从v中取出v后,v在原始字典中存在,则无法删除k。如果我从value.copy().iteritems()中排除.copy()。它返回一个错误:`RuntimeError:dictionary在迭代期间更改了大小。 更重要的是,我试图创造一个通用的,而不是使用
if k=='key6':
do something
是的
期望输出:
{'some_company_100': {'key1': 'value1',
'key2': 'value2',
'key3': 'value3',
'key4': 'value4',
'key5': 'value5',
'key6_1': 'value6_1',
'key6_2': 'value6_2',
'key7': 'value7'},
'some_company_101': {'key1': 'valuea',
'key1': 'valueb',
'key2': 'valuec',
'key4': 'valued',
'key5': 'valuee',
'key6_1': 'value6_a',
'key6_2': 'value6_b'
'key7': 'value7'}}
您只需创建一个新字典,并使用临时字典向中添加新值。这将允许原始词典保持不变
示例:
输出:
在这里,虽然我不认为这是非常理想的,但这段代码的工作原理和预期的一样!:D级
相关问题 更多 >
编程相关推荐