使用Python转换XML和CSV
我想做一个命令行程序,希望它能在Windows和Linux上都能运行。我选择使用Python,因为这是我最喜欢的编程语言。这个程序的目标是接受一个文件名作为参数,然后把文件里的信息以不同的格式输出。在这个例子中,就是把XML格式转换成CSV格式,或者把CSV格式转换成XML格式。
请问这样做的最佳方法是什么呢?
我知道Python里有处理XML和CSV的工具,比如xml.parsers.expat
和csv
库。我希望这个程序能很强大,可能还可以输出其他格式,比如.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的结构。我想知道有没有好的算法可以用来进行这种转换?
2 个回答
0
你只需要把数据转换成标准的Python字典,然后再从这个字典转换成你需要的任何格式。
当然,要把XML转换成CSV,你需要有特别格式的XML,比如:
<root>
<column1>value</column1>
<column2>value</column2>
<column3>value</column3>
</root>
1
你最好把XML转换成JSON,然后再转换回来。因为这两种格式都可以支持多层嵌套的数据。而CSV格式则更适合用来处理一行一行的简单列表,没有额外的嵌套结构。