我有一个字典,看起来像这样:
{ 'foo': { 'opt1': 1, 'opt2': 2, }, 'foo/bar': { 'opt3': 3, 'opt4': 4, }, 'foo/bar/baz': { 'opt5': 5, 'opt6': 6, } }
我需要让它看起来像:
{ 'foo': { 'opt1': 1, 'opt2': 2, 'bar': { 'opt3': 3, 'opt4': 4, 'baz': { 'opt5': 5, 'opt6': 6, } } } }
我应该指出,可以并且将会有多个顶级键(在这种情况下为'foo').我可能会把东西放在一起以获得我需要的东西,但我希望有一个更有效的解决方案.
像这样:
def nest(d): rv = {} for key, value in d.iteritems(): node = rv for part in key.split('/'): node = node.setdefault(part, {}) node.update(value) return rv