使用multiprocessing.Pool解析xml的迭代报错
RecursionError: maximum recursion depth exceeded while calling a Python object
传入的input_list因为BeautifulSoup解析的内容,其内部包含多层嵌套。所以在运行过程中超过最大的递归深度。
list_info = BeautifulSoup(record, "xml")
input_list=list(list_info.find_all("EXPERIMENT"))
pool = multiprocessing.Pool(processes=num_processes,maxtasksperchild=10000)
res_dict_iter = list(tqdm(pool.imap(func=Function1, iterable=input_list), total=len(input_list)))
改变sys.setrecursionlimit(3000)
真的是治标不治本,还是将传入数据变成str这样就解除了迭代,导入函数内后再次用BeautifulSoup解析就可以解决问题了。
inputstr_list=[]
for item in list(list_info.find_all("EXPERIMENT_PACKAGE")):
inputstr_list.append(str(item))
网友评论