我使用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'}
是否有一个简单的方法来做到这一点?
e.g,节省了到字典中的原始格式的命令
或者我需要建立if语句来确定值类型和保存它分开使用到Element.text
替代?
您能否包含完整的代码片段,包括xmldata的值,以便我们可以重现该问题? – 2012-01-12 02:11:35
@DavidRobinson已更新。 – user788462 2012-01-12 02:31:29
您可能已经能够使用'eval',只是您的字符串没有被XML中的'''包围。 – 2012-01-12 02:58:30