Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML-CSV与Python的转换_Python_Xml_Csv_File Conversion - Fatal编程技术网

XML-CSV与Python的转换

XML-CSV与Python的转换,python,xml,csv,file-conversion,Python,Xml,Csv,File Conversion,我想制作一个命令行程序,希望它能在Windows和Linux上运行。我想使用Python,因为它是我选择的编程语言。目标是使程序以文件名作为参数,并以不同的格式输出文件中的信息。在本例中,XML->CSV和CSV->XML 最好的方法是什么 我知道Python中有XML和CSV解析器,比如XML.parsers.expat和CSV库。我希望程序是健壮的,这样也许它可以以其他格式输出,比如.sql或其他格式。受益人是否愿意先将数据转换成标准格式?比如JSON?然后,输出文件可以在必要时转换为其他格

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

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

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

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

价值
价值
价值

您最好将XML转换为JSON再转换回来。这两种格式都支持多层嵌套。相比之下,CSV适合于无需额外嵌套的行列表。

XML是一种非常灵活的格式,因此如何实现这一点实际上取决于XML的格式,以及您希望从中获得什么信息。您可能应该详细说明您希望处理的文件类型。例如:XML用于表示树,而CSV表。。。您的文件将包含具有相同长度分支的树还是?是的,csv和xml文件之间的差异使它有点棘手。xml文件是树格式的,请参阅上面的“我的编辑”以了解xml和csv格式。
不是有效的xml。谢谢,是的,这是我的打字错误。是的,这就是我的想法。因此,没有任何一种可接受的格式可以将XML中的嵌套树保存为csv?@jeffery_the_the_wind不,您需要自己决定如何将信息展平。这就是我在每个项目的基础上所做的。我认为对于一般解决方案,可以使用网格格式中条目的唯一性来填充树。网格中的唯一值组可以是树的分支。