Я использую cElementTree
для извлечения тегов и значений XML в цикле, а затем их хранения в словаре.Загрузка различных типов данных из XML в словарь в python
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
?
Не могли бы вы включить полный фрагмент кода, включая значение xmldata, чтобы мы могли воспроизвести проблему? –
@DavidRobinson Обновлены. – user788462
Возможно, вы могли использовать 'eval', за исключением того, что ваши строки не окружены' '' в XML. –