0

我想做一个命令行程序,希望能在 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 结构。我想知道是否有一个很好的算法来进行这种转换?

4

2 回答 2

1

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

于 2011-11-19T23:42:56.287 回答
0

您应该将数据转换为标准的 python 字典,然后将其转换为您需要的任何格式。

当然,要将 xml 转换为 csv,您应该具有特殊格式的 xml,例如

<root>
    <column1>value</column1>
    <column2>value</column2>
    <column3>value</column3>
</root>
于 2011-11-19T20:26:10.117 回答