Я разборе файла XML с питоном в список и словарьXML разбора в питона в список и словарь
XML код:
<?xml version="1.0"?>
<TP name="TP03_WW35_13">
<Class>
<CDYN>
<test name= "IA CDYN" PP="IA" Workload="PV">
<Parameter name="temprature">
<value>100</value>
</Parameter>
<Parameter name="voltages">
<value>0.85</value>
<value>1.00</value>
<value>1.10</value>
</Parameter>
<Parameter name="Freq">
<value>0.8</value>
<value>1.2</value>
</Parameter>
</test>
<test name= "GT CDYN" PP="GT" Workload="PV">
<Parameter name="temprature">
<value>101</value>
</Parameter>
<Parameter name="voltages">
<value>0.85</value>
</Parameter>
<Parameter name="Freq">
<value>0.8</value>
<value>1.2</value>
<value>1.6</value>
</Parameter>
</test>
</CDYN>
<TDP>
<test name="SDP" Workload="3Dmark Vantage GT1">
<Parameter name="temprature">
<value>100</value>
</Parameter>
</test>
</TDP>
<Sicc>
<test name="SA SICC" PP="SA">
<Parameter name="temprature">
<value>102</value>
</Parameter>
<Parameter name="voltages">
<value>0.85</value>
<value>1.00</value>
</Parameter>
</test>
</Sicc>
</Class>
</TP>
сначала я хотел пройти тест как список, который работал для меня с создателем тестового списка я сделал
на основе этого списка Я хочу создать функцию, которая получит имя теста из списка и создаст словарь и списки из его дети
пример вывода, как хотелось бы, чтобы это выглядело:
TestParam { pp:IA, WL:PV, tempratures:[10,20,30],Voltages:[0.8,1.0,1.2], freq: [8,12,16]}
, что происходит, я могу видеть, что есть 3 значения, но только получить первый
мой код: итерация
def TestListCreator (root):
TestList = []
for Class in root.find('Class'):
for Tests in Class:
# TestList.append(Class.tag +Tests.attrib['name'])
TestList.append(Tests.attrib['name'])
print (TestList)
return TestList
def main():
import xml.etree.ElementTree as ET
XML = ET.parse('1.xml') #parse the xml file into an elementtre
root = XML.getroot()
print root.tag + "=" + root.attrib['name']
TestList = TestListCreator(root)
print (TestList)
## for country in root.findall(".*/CDYN/test[@name='IA CDYN']/Parameter"):
## #for country in root.findall(".*/CDYN/test[@name=]/Parameter[@name=temprature]"):
## rank = country.find('value').text
## name = country.get('name')
## print name, rank
Vlist = []
for country in root.findall(".*/CDYN/test[@name='IA CDYN']/Parameter"):
#for country in root.findall(".*/CDYN/test[@name=]/Parameter[@name=temprature]"):
#for Z in country.find('value'):
#Vlist.append(country.attrib[])
rank = country.find('value').text
name = country.get('name')
print name,rank
print Vlist
Я не понимаю при запуске, я получаю имена каждого теста – user2740068
может ли кто-нибудь предложить решение? – user2740068