我有一个很大的嵌套dict nested_dict
,它是使用并行处理创建的,在每一层都有DictProxy对象。为了避免重新运行这个dict的创建过程(需要花费数小时),我希望将所有内容保存在JSON文件中。根据How to convert a DictProxy object into JSON serializable dict?,可以将DictProxy对象转换为dict,然后将其设置为JSON。但由于我有嵌套的DictProxy对象,运行json.dumps(nested_dict.copy())
将返回TypeError: Object of type DictProxy is not JSON serializable
。
是否有一种有效的方法可以递归地将所有DictProxy对象转换为dict,以便保存在JSON文件中?
2条答案
按热度按时间cclgggtu1#
下面介绍一些dict理解和一些递归:
另外,即使没有
DictProxy
对象或字典没有嵌套,这种方法也能正常工作brccelvz2#
只需创建一个新的空dict,然后使用for循环填充它,直到最内层的dict解决它:
然后
也许这不是最有效的,但它的工作!