如何将JSON对象加载到multiprocessing.managers.DictProxy对象中?
快速将JSON加载到DictProxy的方法
嘿,我刚好对DictProxy这个共享字典代理有点经验,其实你完全不用写遍历填充的函数——有个超简便的办法,就是利用DictProxy自带的update()方法!
核心思路
DictProxy是multiprocessing.Manager创建的共享字典代理对象,它本身就支持update()方法,可以直接把普通字典的键值对批量导入进去,省去手动遍历的麻烦。
代码示例
import json from multiprocessing import Manager # 1. 创建Manager实例和空的DictProxy manager = Manager() shared_dict = manager.dict() # 2. 加载JSON数据到普通字典 # 如果是从文件加载 with open('your_json_file.json', 'r', encoding='utf-8') as f: json_data = json.load(f) # 如果是从JSON字符串加载 # json_data = json.loads('{"key1": "value1", "key2": 2}') # 3. 一键导入到DictProxy shared_dict.update(json_data)
为什么之前的复制方法不行?
你之前尝试复制普通字典到DictProxy后还是字典类型,这很正常——因为DictProxy并不是普通字典的子类,它是一个代理对象,用来在多进程间共享数据。普通的字典复制操作(比如dict.copy()或者直接赋值)只会生成新的普通字典,而update()是DictProxy专门设计的方法,能直接操作共享字典的底层数据。
这样操作下来,你就不用写繁琐的遍历填充函数啦,几行代码就能搞定!
内容的提问来源于stack exchange,提问作者Das.Rot
相关产品推荐
相关产品推荐

