调用Python对象时超过了最大递归深度 2023-01-07

2023-03-03  本文已影响0人  土雕艺术家

使用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))
上一篇 下一篇

猜你喜欢

热点阅读