我有一个嵌套字典。我不知道它前面的结构。我想从中创建一个非嵌套字典。
我创建了一个递归函数来完成这项任务,但我想知道是否有更快的方法来实现这一目标。
我的递归函数如下所示:
假设我有一个嵌套字典,例如:
dic = {"A1":{"B1":{"C":3},
"B2":{"D1":"a",
"D2":"nested within D2",
"D3":{"E1":1,"E2":2}}},
"A2":100}
然后我的递归函数是:
def recurse(dic,prefix="",myrow={}):
## dic: dictionary
for key in dic.keys():
dickey = dic[key]
if isinstance(dickey,dict):
recurse(dickey,prefix + key + "_" ,myrow)
else:
myrow[ prefix + key ] = dickey
return myrow
这将给出非嵌套字典: 递归(dic)
{'A1_B1_C': 3,
'A1_B2_D1': 'a',
'A1_B2_D2': 'nested within D2',
'A1_B2_D3_E1': 1,
'A1_B2_D3_E2': 2,
'A2': 100}