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

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

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

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

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

【问题讨论】:

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

标签: python wordpress csv plone transmogrifier


【解决方案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 接口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 2021-02-07
      相关资源
      最近更新 更多