Мне предоставлен XML-файл, содержащий нужные мне данные, и мне нужно его преобразовать в CSV.Гибкий XML-словарь с использованием Python3
Это должно быть просто, но количество детей для «повторяющейся единицы» XML не всегда одинаково.
То, что я пытаюсь выработать, - это то, как наилучшим образом перебирать дочерние элементы каждого дочернего элемента, пока их больше нет, и верните это как одну «линию». Конечным результатом должен быть список словарей (один список для каждой строки для CSV).
В качестве примера
<repeatingunit>
<city>
<name>London</name>
</city>
<station>
<name>Southwark</name>
<tubeline>
<name>Jubilee</name>
</tubeline>
</repeatingunit>
<repeatingunit>
<city>
<name>London</name>
<county>UK</county>
<station>
<name>Mile End</name>
</station>
</repeatingunit>
Это должно привести к:
{'city|name':'London','station|name':'Southwark','station|tubeline|name': 'Jubilee'},{'city|name':'London','city|country':'UK','station|name':'Mile End'}
Я использовал xml.etree.ElementTree и root.iter, я доволен зацикленной но сво динамизм.
Я попытался использовать логику для множественного вложенного списка here, но безрезультатно. Может ли кто-нибудь указать мне в правильном направлении предложить новый подход?
Я знаю, что словари различной длины в конце не идеальны для записи в csv, но я могу справиться с этим, основываясь на моем желаемом выходе.