简体   繁体   English

如何将 dict 的嵌套 dict 转换为嵌套的 OrderedDict

[英]How to convert nested dict of dict to nested OrderedDict

Having a requirement to convert nested dict of dict to nested ordered dict需要将 dict 的嵌套 dict 转换为嵌套的有序 dict

user_dict = {"a": {"b": {"c":
                              {'d': 'e',
                              'f': 'g',
                              'h': 'i'
                              }}}}

Expected output:预期输出:

cfg_opts = OrderedDict([('a', OrderedDict([('b', OrderedDict([('c', OrderedDict([('d', 'e'), ('f','g'), ('h', 'i')]))]))]))])

I would use recursive function for this task as follows我会为这个任务使用递归函数如下

import collections
user_dict = {'a': {'b': {'c': {'d': 'e', 'f': 'g', 'h': 'i'}}}}
def orderify(d):
    if isinstance(d,dict):
        return collections.OrderedDict({k:orderify(v) for k,v in d.items()})
    else:
        return d
ordered_user_dict = orderify(user_dict)
print(ordered_user_dict)

output输出

OrderedDict([('a', OrderedDict([('b', OrderedDict([('c', OrderedDict([('d', 'e'), ('f', 'g'), ('h', 'i')]))]))]))])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM