使用Python进行XML CSV转换

时间:2011-11-19 18:52:04

标签: python xml csv file-conversion

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

这样做的最佳方式是什么?

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

感谢。

EDIT ::

<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结构。我想知道是否有一个好的算法来进行这种转换?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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