Я использую cElementTree
для извлечения тегов и значений XML в цикле, а затем сохраняю их в словарь.
Файл XML содержит:
<root>
<tag1>['item1', 'item2']</tag1>
<tag2>a normal string</tag2>
</root>
Код Python (примерно):
import xml.etree.cElementTree as xml
xmldata = {}
xmlfile = xml.parse(XMLFile.xml)
for xmltag in xmlfile.iter():
xmldata[xmltag.tag] = xmltag.text
Проблема, с которой я столкнулся, состоит в том, что файл xml содержит разные типы данных, включая string
и list
.К сожалению, Element.text
сохраняет все значения XML как string
(включая списки).
Поэтому, когда я загружаю из файла XML, у меня есть:
{'tag1':"['item1', 'item2']", 'tag2':'a normal string'}
Когда я предпочитаюиметь:
{'tag1':['item1', 'item2'], 'tag2':'a normal string'}
Есть ли простой способ сделать это?
например, команда, которая сохраняет в словарь в исходном формате
Или мне нужно настроить, еслиинструкции для определения типа значения и его отдельного сохранения с использованием альтернативы Element.text
?