如何使用Python解析WordPress CSV导出

时间:2015-07-15 22:56:39

标签: python wordpress csv plone transmogrifier

我需要将内容从WordPress导入Plone,一个基于Python的CMS,我将posts表转储为一个巨大的CSV vanilla文件,使用“;”作为分隔符。

问题是来自csv module的标准CSV阅读器不够智能,无法解析行内的HTML内容(post_content字段)。

例如,当解析器遇到像<p>&nbsp;</p>这样的东西时,它会将分号解释为字段分隔符,并且我最终会得到比字段更多的项目以及包含错误内容的字段。

还有其他方法可以解决这类问题吗?使用正则表达式处理行似乎对我来说非常可怕。

3 个答案:

答案 0 :(得分:2)

经过一些额外的研究,我通过阅读PEP 0305(建议在Python中添加cvs模块)的文本发现excel-tab方言;这在模块文档中有提及,但我一开始并没有注意到。

然后我使用标签作为分隔符(\t)重新导出帖子。

enter image description here

我做了一个1000行的测试,发现没有任何错误。

答案 1 :(得分:1)

CSV模块提供escapechar格式参数,允许您转义分隔符(已设置为分号)。如果您可以在escapechar='\\'的来电中提供csv.reader(),则可以使用\替换CSV文件中的字符\\,并将&nbsp;替换为&nbsp\; {1}}(使用文本编辑器的查找/替换选项)。

答案 2 :(得分:1)

对于较小的网站,另一个选择可能是使用pywordpress,这是一个WordPress XML-RPC API的pythonic接口。