Python CSV数据到XML

时间:2019-02-22 19:41:46

标签: python xml

我正在使用Python,试图弄清楚如何基于CSV的输入来创建XML文件。在从CSV传递一行数据之前,必须使用相同的标记添加一部分静态信息。这可能是1行数据或20行。 DocFile标记的数量应为行数的两倍。

<Company>
    <Identifier>Benesolv</Identifier>
    <Employee>
        <EESSN>111111111</EESSN>
        <Dependent>
            <SSN>222222222</SSN>
        <EESSN>111111111</EESSN>
        </Dependent>
    </Employee>
</Company>

这是1行数据的样本。

以下是我到目前为止所写的内容。我遇到的问题是,只有DocFile的一部分正在将其转换为XML。仅供参考,我是Python的新手。

# Deals with all the cases of having a file vs stdin
out_to_file="N"
#  Check to see if the user is running a file or just commandline input
if [ $# -ge 3 ];then
    out_to_file="Y" 
else  # The user is not running a file so ask them if they want to output to a file
    read -p "Output to a file? [y/n] " out_to_file 
fi
echo $out_to_file

2 个答案:

答案 0 :(得分:0)

没有CSV标准,这只是一种使用普通文本表示电子表格的方式,因此它实际上取决于CSV的格式。

您可以使用python csv模块从csv文件读取。 然后,您可以通过压缩键和值来处理数据以通常将它们表示为dict。 一旦将dict,lis或这两种类型的任何组合与嵌套结合在一起,就很容易将这些数据与其他数据融合或更新。 然后,您可以将生成的python数据类型转换为xml。 我通常宁愿使用json作为一种交换格式来完成这种工作,但这就是我将如何做。

您应该看一下: Serialize Python dictionary to XML 或者,您也可以使用此模块来解析,操作和编写xml: https://docs.python.org/3/library/xml.etree.elementtree.html#module-xml.etree.ElementTree

答案 1 :(得分:0)

我在朋友的帮助下弄明白了。我们添加了一个函数,该函数创建了我需要的静态XML字段,然后将我们循环通过CSV文件行的所有内容都称为该函数。 感谢您的输入!