如何使用 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>&nbsp;</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;
替换为&nbsp\;
(使用文本编辑器的查找/替换选项)。
【讨论】:
【参考方案3】:对于较小的站点,另一种选择可能是使用pywordpress,这是一个 WordPress XML-RPC API 的 Python 接口。
【讨论】:
以上是关于如何使用 Python 解析 WordPress CSV 导出的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 上将 Wordpress JSON 解析为 UITableView