Я написал код для преобразования данных xml в список словарей и загрузки в таблицы.
Данные входного файла:
<report>
<report_header type='comp1' title='industry' year='2019' />
<report_body age='21'>
<Prod name='krishna' id='11' place='usa'>
<License state='aus' area= 'street1'>
</License>
<License state='mus' area= 'street2'>
</License>
<License state='mukin' area= 'street3'>
</License>
</Prod>
<Prod name='ram' id='12' place='uk'>
<License state='junej' area= 'street4'>
</License>
<License state='rand' area= 'street5'>
</License>
<License state='gandhi' area= 'street6'>
</License>
</Prod>
<Prod name='chand' id='13' place='london'>
<License state='nehru' area= 'street7'>
</License>
<License state='mahatma' area= 'street8'>
</License>
<License state='park' area= 'street9'>
</License>
</Prod>
</report_body>
</report>
Код:
import xml.etree.ElementTree as ET
tree = ET.parse('sample.xml')
root = tree.getroot()
way_list=[]
for item in root.iter():
way_list.append(dict(item.attrib))
for k, v in [(k, v) for x in way_list for (k, v) in x.items()]:
print(k,v)
вывод: тип comp1
название отрасли
год 2019
возраст 21
имя Кришна
идентификатор 11
место США
штат Aus
район улица1
штат муз
область улица2
штат Мукин
область улица3
имя оперативной памяти
идентификатор 12
место Великобритании
штатиюнь
область улица4
штат Рэнд
область улица 5
штат Ганди
область улица6
имя чанд
id 13
место лондон
штат Неру
район улица 7
штат Махатма
район улица8
государственный парк
площадь улицы9
Ожидаемый результат: [{type: 'comp1', название: 'industry', год: 2019, возраст: 21 год, имя: «Кришна», id: 11, место: «США», штат: «aus», площадь: «улица1»}, {тип: «comp1», название: «отрасль», год:2019, возраст: 21 год, имя: «Кришна», id: 11, место: «США», штат: «mus», район: «улица2»}, {тип: «comp1», название: «промышленность», год:2019, возраст: 21 год, имя: «Кришна», id: 11, место: «США», штат: «мускин», площадь: «улица3»}, {тип: «comp1», название: «промышленность», год:2019, возраст: 21 год, имя: «ram», id: 12, место: «uk», штат: «junej», площадь: «street4»}, {тип: «comp1», название: «отрасль», год:2019, возраст: 21 год, имя: «ram», id: 12, место: «uk», штат: «rand», площадь: «street5»}, ......... и т. Д.]
Моя главная цель - загрузить данные в таблицу, как показано ниже:
тип, название, год, имя, идентификатор, место, штат, область
comp1, отрасль, 2019, Кришна, 11, США, AUS, улица 1
comp1, промышленность, 2019, Кришна, 11, США, Муз, улица2
comp1, промышленность, 2019, Кришна, 11, США, muskin, street3
comp1, индустрия, 2019, ram, 12, Великобритания, junej, street4
comp1, индустрия, 2019, ram, 12, Великобритания, rand, street5
comp1, промышленность, 2019, овен, 12, Великобритания, ганди, street6
Теперь я могу конвертировать данные в список словарей.