如何将defaultdicts的defaultdict转换为dicts的defaultdict?

2024-06-28 11:31:38 发布

您现在位置:Python中文网/ 问答频道 /正文

使用this answer,我创建了一个defaultdictdefaultdicts

from collections import defaultdict

factory = lambda: defaultdict(factory)
defdict = factory()
defdict['one']['two']['three']['four'] = 5

# defaultdict(<function <lambda> at 0x10886f0c8>, {
#             'one': defaultdict(<function <lambda> at 0x10886f0c8>, {
#                 'two': defaultdict(<function <lambda> at 0x10886f0c8>, {
#                     'three': defaultdict(<function <lambda> at 0x10886f0c8>, {
#                         'four': 5})})})})

我认为这不是正确的解决方案:

import json

regdict = json.loads(json.dumps(defdict))

# {u'one': {u'two': {u'three': {u'four': 5}}}}

另外,this answer也不够,因为它不会在嵌套的dict上递归。


Tags: lambdaanswerimportjsonfactoryfunctionthisone