详解python如何修改多进程共享字典


  • 按照正常修改字典的逻辑修改字典,代码如下:

import multiprocessing
multi_dict = multiprocessing.Manager().dict()
multi_dict.update({"dev1": {"app1": [11], "app2": [22]}, "dev2": {"app3": [33], "app4": [44]}})
print(multi_dict)
# 打印结果:{'dev1': {'app1': [11], 'app2': [22]}, 'dev2': {'app3': [33], 'app4': [44]}}
# 现在要更新dev1中app2的值,该怎么办?
# 正常的修改方法
multi_dict['dev1']['app2'] = multi_dict['dev1']['app2'] + [222]
print(multi_dict)
# 打印结果:{'dev1': {'app1': [11], 'app2': [22]}, 'dev2': {'app3': [33], 'app4': [44]}}

可以看到并没有修改成功

  • 稍微修改一下代码

import multiprocessing
multi_dict = multiprocessing.Manager().dict()
multi_dict.update({"dev1": {"app1": [11], "app2": [22]}, "dev2": {"app3": [33], "app4": [44]}})
temp_dict = multi_dict["dev1"]
temp_dict["app2"] = temp_dict["app2"] + [222]
multi_dict["dev1"] = temp_dict
print(multi_dict)
# 打印结果:{'dev1': {'app1': [11], 'app2': [22, 222]}, 'dev2': {'app3': [33], 'app4': [44]}}

这样就修改成功了 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM