我正在尝试将以下XML数据展平为CSV类型的表数据。在
我可以获取Sal元素及其属性中的数据,但无法将SalC数据展平到父级帆船属性以生成一个平面表数据。在
我想把下面的XML数据展平,这样我就可以写入数据库进行进一步的处理。在
第1列,第2列,第3列,第4列,第5列,第6列,第6列,第7列,第8列,第9列,第10列
XML数据:
<Sal col1="a1" col2="C" col3="12/5/2012" col4="a" col5="8" col6="True">
<SalC col7="A" col8="1" col9="2" col10="True"/>
<SalC col7="A1" col8="1" col9="2" col10="False"/>
<SalC col7="B" col8="1" col9="2" col10="False"/>
<SalC col7="C" col8="1" col9="2" col10="False"/>
<SalC col7="D" col8="1" col9="2" col10="False"/>
<SalC col7="E" col8="1" col9="2" col10="False"/>
<SalC col7="E1" col8="1" col9="2" col10="False"/>
<SalC col7="F" col8="1" col9="2" col10="False"/>
</Sal>
<Sal col1="a1" col2="C" col3="12/9/2012" col4="b" col5="8" col6="True">
<SalC col7="A" col8="1" col9="2" col10="False"/>
<SalC col7="B" col8="1" col9="2" col10="False"/>
<SalC col7="C" col8="1" col9="2" col10="True"/>
<SalC col7="D" col8="1" col9="2" col10="False"/>
<SalC col7="E" col8="1" col9="2" col10="False"/>
</Sal>
<Sal col1="a2" col2="C" col3="12/8/2012" col4="c" col5="15" col6="True">
<SalC col7="A" col8="1" col9="2" col10="True"/>
<SalC col7="A1" col8="1" col9="2" col10="False"/>
<SalC col7="B" col8="1" col9="2" col10="False"/>
<SalC col7="C" col8="1" col9="2" col10="True"/>
<SalC col7="D" col8="1" col9="2" col10="False"/>
<SalC col7="E" col8="1" col9="2" col10="False"/>
<SalC col7="E1" col8="1" col9="2" col10="True"/>
<SalC col7="F" col8="1" col9="2" col10="False"/>
</Sal>
<Sal col1="a3" col2="C" col3="12/9/2012" col4="d" col5="8" col6="True">
<SalC col7="A" col8="1" col9="2" col10="False"/>
<SalC col7="B" col8="1" col9="2" col10="False"/>
<SalC col7="C" col8="1" col9="2" col10="False"/>
<SalC col7="D" col8="1" col9="2" col10="True"/>
<SalC col7="E" col8="1" col9="2" col10="False"/>
</Sal>
谢谢你的帮助。在
使用XSLT可以很容易地解决这一问题,而无需在工作流中引入Python,但是,如果必须使用Python,
lxml.etree
很方便地引入了一个新的类lxml.etree.XSLT
,您可以充分利用它。在假设您的
XML
数据位于名为xmlfile.xml
的文件中,下面的代码应该可以工作。在xsltfile.xsl文件
示例代码
^{pr2}$sal.attrib
与dict类似:
^{pr2}$salc.attrib
也是dict样的。要“扁平化”,或者更确切地说,将两个dict连接在一起,可以使用dict.update:假设每个}:
SalC
元素都有col7
、col8
、cal9
和col10
属性,您可以为sal
中的每个salc
调用{收益率
相关问题 更多 >
编程相关推荐