我有一个字符串,它不是真正的XML,但只是一个标签列表。没有什么是等级的。我只是想弄出关键/值对的字典。
该字符串的标签以tag name
开头,以value
结尾。它看起来像这样:
str = '<tag name="image_num_t" value="1"/><tag name="image_pixel_depth" type='A' value="6"/>'
我想创建一个这样的字典:
d = {'image_num' : 1, 'image_pixel_depth':6}
(不需要type
或其他任何东西)
从头开始编写代码看起来很不错,也觉得没必要。我查看了各种各样的软件包(比如lxlm等),认为我可以将其转换为正确的XML然后像成熟的成人那样解析它,但没有任何作用。
有人能告诉我使用python 2.7将一串标签转换为dict的最佳方法吗?感谢。
答案 0 :(得分:1)
如果您的字符串中唯一没有被限定为XML的东西是根元素,如问题所示,则修复应该像添加临时根元素一样简单。从这一点开始,您可以使用任何XML解析器来提取信息并将其存储在字典中:
from xml.etree import ElementTree as ET
str = '''<tag name="image_num_t" value="1"/><tag name="image_pixel_depth" type='A' value="6"/>'''
source = '<root>' + str + '</root>'
root = ET.fromstring(source)
d = {t.attrib['name']: int(t.attrib['value']) for t in root.findall('tag')}