美文网首页
调用Python对象时超过了最大递归深度 2023-01-07

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

作者: 土雕艺术家 | 来源:发表于2023-03-03 09:51 被阅读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))

相关文章

网友评论

      本文标题:调用Python对象时超过了最大递归深度 2023-01-07

      本文链接:https://www.haomeiwen.com/subject/mzjscdtx.html