我在totalprocessing totaly。我试图改变我的代码,以便同时运行它的一部分。Python和多处理示例
我有一个巨大的列表,我必须调用每个节点的API。因为API是独立的,所以我不需要第一个API的结果就可以继续进行第二个。所以,我有这样的代码:
def xmlpart1(id):
..call the api..
..retrieve the xml..
..find the part of xml I want..
return xml_part1
def xmlpart2(id):
..call the api..
..retrieve the xml..
..find the part of xml I want..
return xml_part2
def main(index):
mylist = [[..,..],[..,..],[..,..],[..,...]] # A huge list of lists with ids I need for calling the APIs
myL= mylist[index] c
mydic = {}
for i in myL:
flag1 = xmlpart1(i)
flag2 = xmlpart2(i)
mydic[flag1] = flag2
root = "myfilename %s.json" %(str(index))
with open(root, "wb") as f:
json.dump(mydic,f)
from multiprocessing import Pool
if __name__=='__main__':
Pool().map(main, [0,1,2,3])
从这里,并从聊天的几个建议后,我结束了这段代码。问题仍然存在。我在9:50运行脚本。 10:25第一个文件“myfilename 0.json”出现在我的文件夹中。现在是11:25,其他文件都没有出现。子列表具有相同的长度,并且它们执行相同的操作,所以它们大约需要相同的时间。
我很困惑,你问什么帮助,在这里。因为名称代码[1-4]被重用(函数没有主要方法),所以发布的代码将不起作用,并且输出数据处理的问题在您根本没有显示的代码中。 –
现在比较好。主要功能来自导入的功能。如果我在一个脚本中运行代码,我没有问题。所以问题不在于main()函数,而在于如何使用多处理库 – Tasos
这不是保存数据的多处理库。失败的部分不在您展示的部分中。 –