Python 合并字典的字典的所有键并创建新字典
我有一本字典 { "a": "b", "c": { "d": "e", "f": { "g": "h", "i": "j" } } } { “a”:“b”, “c”:{ “d”:“e”, “f”:{ “g”:“h”, “i”:“j” } } } 我希望输出像: { "a": "b", "c.d": "e", "c.f.g": "h", "c.f.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'} >>>def手柄(inp): out={} 对于inp中的i: 如果类型(inp[i])为dict: 对于inp[i].keys()中的jj: out[i+'.+jj]=inp[i][jj] 其他: out[i]=inp[i] 返回 >>>手柄(inp) {'a':'b','c.f':{'i':'j','g':'h'},'c.d':'e'}Python 合并字典的字典的所有键并创建新字典,python,dictionary,Python,Dictionary,我有一本字典 { "a": "b", "c": { "d": "e", "f": { "g": "h", "i": "j" } } } { “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:
... 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'}
>>>
您需要为每个字典递归地执行此操作 这很有效
>>>
>>> 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'}
>>>
您需要为每个字典递归地执行此操作 这很有效
>>>
>>> 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'}
>>>
您需要为每个字典递归地执行此操作 这很有效
>>>
>>> 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'}
>>>
您必须对每个内部字典递归地执行此操作。
{“a”:{“b”:2},“a.b”:1}
的预期输出是什么?根据您尝试实现的内容,可能还有其他方法可以执行相同的操作。正如@Kevin所提到的,这可能会导致歧义。您必须对每个内部字典递归执行此操作。{“a”:{“b”:2},“a.b”:1}
?根据您尝试实现的内容,可能还有其他方法可以执行相同操作。正如@Kevin所提到的,这可能会导致歧义。您必须对每个内部字典递归执行此操作。{“a”:{“b”:2},“a.b”:1}
?根据您尝试实现的内容,可能还有其他方法可以执行相同操作。正如@Kevin所提到的,这可能会导致歧义。您必须对每个内部字典递归执行此操作。{“a”:{“b”:2},“a.b”:1}
?根据您尝试实现的内容,可能还有其他方法可以执行相同操作。正如@Kevin所提到的,这可能会造成歧义。