如何使用 Python 解析 WordPress CSV 导出

Posted

技术标签:

【中文标题】如何使用 Python 解析 WordPress CSV 导出【英文标题】:How to parse a WordPress CSV export using Python 【发布时间】:2015-10-05 05:11:48 【问题描述】:

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

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

例如,当解析器遇到<p> </p> 之类的内容时,它会将分号解释为字段分隔符,我最终会得到比字段更多的项目以及包含错误内容的字段。

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

【问题讨论】:

哼。如果你先转换所有的 HTML 会不会好吗 进入空格,然后尝试 csv.reader? 您可以添加输入示例吗? 【参考方案1】:

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

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

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

【讨论】:

我原以为使用:fields enclosed by " 导出会解决您提到的问题,无论您使用什么分隔符 在我上次的测试中,我们不应该标记“删除字段中的 CRLF 字符”来让 transmogrify.wordpress 检测段落【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于如何使用 Python 解析 WordPress CSV 导出的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上将 Wordpress JSON 解析为 UITableView

用于解析现有帖子的Wordpress方法

wordpress怎么安装

在 Wordpress 中使用 XSLT 解析 XML

腾讯云安装WordPress上传图片出现http错误怎么解决?

JavaScript 使用ajax / jquery解析wordpress RSS feed