我使用的是Python3.10,我有一个三级嵌套的大词典,格式如下:
a = {k1:
{k2:
{k3:
}
}
}
我应该在每个级别上做一些任务.任务通过将DICTIONARY的键值指定为其名称来将嵌套的DICTIONARY切片到不同的文件.
- 第一级名称-->;f"{k1}.txt"
- 第二级名称-->;f"{k1}{k2}.txt"
- 第三级名称-->;f"{k1}{k2}{k3}.txt"
大概如下所示:
import pickle
for k1, k1_data in a.items():
# Save k1_data as f"{k1}.txt"
with open(f"{k1}.txt", "wb") as file:
pickle.dump(k1_data, file)
for k2, k2_data in k1_data.items():
# Save k2_data as f"{k1}_{k2}.txt"
with open(f"{k1}_{k2}.txt", "wb") as file:
pickle.dump(k2_data, file)
for k3, k3_data in k2_data.items():
# Save k3_data as f"{k1}_{k2}_{k3}.txt"
with open(f"{k1}_{k2}_{k3}.txt", "wb") as file:
pickle.dump(k3_data, file)
完成所有任务需要1个小时.我搜索了很多多线程模块和示例.
它们的形式是收集参数并将参数发送给函数.然后,它们全部并行运行.
在下面的示例中:Function-->;DO_TASK,PARAMETERS--&gT;MY_LIST
result_list = []
with Pool() as pool:
for result in pool.map_async(do_task, my_list).get():
result_list.append(result)
然而,我感到困惑的是,我如何才能在Python中对我的情况做同样的事情呢?