我有一个使用DictProxy创建的multiprocessing.Manager().dict()对象来支持并发。在运行结束时,我需要将dict序列化为JSON。但是还不清楚如何将DictProxy转换为可序列化的dict对象。当我尝试时,我得到:

TypeError: <DictProxy object, typeid 'dict' at 0x10a240ed0> is not JSON serializable

我怎样才能解决这个问题?

最佳答案

与其使用像DictProxy这样的私有(private)_getvalue()方法,不如使用像copy()这样的公共(public)方法来返回浅复制的dict

import multiprocessing

if __name__ == '__main__':
    manager = multiprocessing.Manager()
    d = manager.dict()
    import json
    json.dumps(d.copy())

09-25 15:07