假设我有这样一个XML:
<Rules>
<Set Parameter="4" To="90">
<If Parameter="1087" EqualsTo="90" />
</Set>
<Set Parameter="5" To="-5">
<If Parameter="1087" EqualsTo="87" />
</Set>
<Set Parameter="6" To="[-5,23;36,7;58,7;78,8;94,47]">
<If Parameter="1087" EqualsTo="87" />
</Set>
<Set Parameter="14" To="7,5" />
<Set Parameter="15" To="-7,5" />
<Set Parameter="16" To="0,5" />
<Set Parameter="17" To="3" />
<Set Parameter="18" To="-3" />
<If Parameter="1087" EqualsTo="87" />
</Set>
</Rules>
我想读取此XML文件并将其转换为数据帧:
Parameter<Set> Parameter<If>
4 1087
5 1087
6 1087
14 1087
15 1087
16 1087
17 1087
18 1087
这是我已经尝试过的,但是我遇到了一些错误,可能有一种更有效的方法来完成这项任务:
import xml.etree.ElementTree as ET
import pandas as pd
import os
def getMetrics(file_name):
path="C:\\Users\Z003Z9CF\Downloads"
os.chdir(path)
tree = ET.parse('sample1.xml')
print(tree)
root = tree.getroot()
print(root.tag)
result = []
for setnode in root.iter('Set'):
node = setnode.attrib["Parameter"]
for ifnode in setnode:
if "Parameter" in ifnode.attrib:
result.append(dict(node=node, parameter=ifnode.attrib.get("Parameter")))
return result
df = pd.DataFrame(getMetrics('sample1.xml'), columns["Parameter","Parameter"])
print(df)
首先你调用的方法和函数返回是错误的。您定义了只接受一个参数的函数,并发送了两个参数。同样显示的输出根据你的
xml
也是错误的。你知道吗输出应符合
xml
:在这里,我调试和纠正你的功能错误,在我的本地设置这是工作良好。你知道吗
您的
xml
文件应如下所示:相关问题 更多 >
编程相关推荐