【问题标题】:XML CSV convert with Python使用 Python 转换 XML CSV
【发布时间】:2011-11-19 18:52:04
【问题描述】:

我想做一个命令行程序,希望能在 Windows 和 Linux 上运行。我想使用 Python,因为它是我选择的编程语言。目标是使程序以文件名作为参数,并以不同的格式输出文件中的信息。在这种情况下,XML -> CSV 和 CSV -> XML。

最好的方法是什么?

我知道 Python 中有 XML 和 CSV 解析器,例如 xml.parsers.expatcsv 库。我希望该程序是健壮的,以便它可以以其他格式输出,例如 .sql 或其他格式。首先将数据转换为标准格式会受益吗?像 JSON 一样?然后可以根据需要将输出文件制作成其他格式。

谢谢。

编辑::

<level1 id ='' attr1='' attr2=''>
    <level2 id ='' attr1='' attr2=''>
        <type1 id ='' attr1='' attr2=''>
        </type1>
        <type2 id ='' attr1='' attr2=''>
        </type2>
    </level2>
    <level2 id ='' attr1='' attr2=''>
        <type2 id ='' attr1='' attr2=''>
        </type2>
    </level2>
</level1>

这是 XML 格式。注意 level2 中的 type1 和 type2。现在我应该如何在 csv 中逐行表示这一行?

编辑#2:

我想这个问题归结为在树状数据结构和网格结构之间转换的标准方法。我最终在 python 中创建了一个嵌套列表,比如 JSON,但没有使用 JSON 结构。我想知道是否有一个很好的算法来进行这种转换?

【问题讨论】:

  • XML 是一种非常灵活的格式,所以如何做到这一点实际上取决于您的 XML 格式,以及您想要从中获取什么信息。
  • 您可能应该更清楚地说明您希望处理什么样的文件。例如:XML 用于表示树,而 CSV 表...您的文件是否将包含具有相同长度分支的树或...?
  • 是的,csv 和 xml 文件之间的差异使它有点棘手。 xml 文件是树格式的,请参阅上面的 xml 和 csv 格式的编辑。
  • &lt;/level1 id ='' attr1='' attr2=''&gt; 不是有效的 xml。
  • 谢谢,是的,这是我的错字。

标签: python xml csv file-conversion


【解决方案1】:

最好将 XML 转换为 JSON 并返回。两种格式都支持多层嵌套。相比之下,CSV 适用于没有额外嵌套的行列表。

【讨论】:

  • 是的,我就是这么想的。所以没有任何一种可接受的格式将嵌套树从 XML 保存为 csv?
  • @jeffery_the_wind 不,您需要自己决定如何展平信息。
  • 这就是我所做的,基于每个项目。我认为对于一般解决方案,您可以使用网格格式中条目的唯一性来填充树。网格中的唯一值组可能是树的分支。
【解决方案2】:

你应该把数据转换成标准的python dict,然后再转换成你需要的任何格式。

当然,要将xml转换为csv,你应该有特殊格式的xml,比如

<root>
    <column1>value</column1>
    <column2>value</column2>
    <column3>value</column3>
</root>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-16
    • 2016-12-21
    • 1970-01-01
    • 2019-07-27
    • 2013-03-29
    • 1970-01-01
    • 2021-12-26
    相关资源
    最近更新 更多