Mic*_*ael 7 python beautifulsoup pickle
我有汤,BeautifulSoup因为我不能泡菜.当我尝试pickle对象时,python解释器静默崩溃(这样它就不能作为例外处理).我必须能够pickle对象,以便使用multiprocessing包返回对象(pickles对象在进程之间传递它们).我该如何解决/解决问题?不幸的是,我无法发布该页面的html(它不公开),我一直无法找到问题的可重现的例子.我试图通过循环汤和酸洗单个组件来隔离问题,产生错误的最小的东西是<class 'BeautifulSoup.NavigableString'>.当我打印对象时,它打印出来u'\n'.
这个类NavigableString是不可序列与pickle或cPickle,其中multiprocessing使用.但是,您应该可以使用此序列化此类dill.dill有一个pickle接口的超集,并可以序列化大部分python. multiprocessing仍然会失败,除非您使用的一个分支multiprocessing,它使用dill,被称为pathos.multiprocessing.
获取代码:https://github.com/uqfoundation.
有关更多信息,请参阅: 多处理和莳萝可以一起做什么?
http://matthewrocklin.com/blog/work/2013/12/05/Parallelism-and-Serialization/
http://nbviewer.ipython.org/gist/minrk/5241793
事实上,正如 dekomote 所建议的,您只需利用您始终可以将 soup 转换为 unicode 字符串,然后再将 unicode 字符串返回到 soup 的优势。
因此,恕我直言,您不应该尝试通过多处理包传递汤对象,而只需传递代表汤的字符串。
| 归档时间: |
|
| 查看次数: |
1928 次 |
| 最近记录: |