如何将python嵌套dict转换为非嵌套dict
时间: 2023-07-04 21:04:16 浏览: 117
可以使用递归函数来将嵌套的字典转换为非嵌套的字典。以下是一个示例代码:
``` python
def flatten_dict(d, parent_key='', sep='_'):
"""
将嵌套的字典转换为非嵌套的字典
"""
items = []
for k, v in d.items():
new_key = parent_key + sep + k if parent_key else k
if isinstance(v, dict):
items.extend(flatten_dict(v, new_key, sep=sep).items())
else:
items.append((new_key, v))
return dict(items)
```
该函数接受一个字典作为输入,并返回一个非嵌套的字典。如果字典中的某个键对应的值也是一个字典,则该函数将递归地调用自身以处理该子字典。在递归过程中,使用 parent_key 参数来记录父级键的名称,以便在生成新键时使用。sep 参数用于指定连接父级和子级键时使用的分隔符。
下面是一个示例:
``` python
nested_dict = {
'a': {
'b': 1,
'c': {
'd': 2
}
},
'e': 3
}
flat_dict = flatten_dict(nested_dict)
print(flat_dict)
# 输出:{'a_b': 1, 'a_c_d': 2, 'e': 3}
```
在上面的示例中,我们将一个嵌套的字典转换为了一个非嵌套的字典。注意,生成的新键的名称是由父级键和子级键拼接而成的,并且使用了指定的分隔符。
阅读全文