我有一本字典
{ "a": "b", "c": { "d": "e", "f": { "g": "h", "i": "j" } } }
我希望输出如下:
{ "a": "b", "c.d": "e", "c.f.g": "h", "c.f.i": "j" }
我试图解决
>>> def handle(inp): out = {} for i in inp: if type(inp[i]) is dict: for jj in inp[i].keys(): out[i+'.'+jj] = inp[i][jj] else: out[i] = inp[i] return out >>> handle(inp) {'a': 'b', 'c.f': {'i': 'j', 'g': 'h'}, 'c.d': 'e'}
但我无法完全解决它。
答案 0 :(得分:3)
您需要为每个字典递归执行此操作。
这很有效。
>>>
>>> def handle(inp):
... out = {}
... for i in inp:
... if type(inp[i]) is dict:
... inp[i]=handle(inp[i])
... for jj in inp[i].keys():
... out[i+'.'+jj] = inp[i][jj]
... else:
... out[i] = inp[i]
... return out
...
>>> handle(inp)
{'a': 'b', 'c.f.i': 'j', 'c.d': 'e', 'c.f.g': 'h'}
>>>