在python中将一串标签转换为dict

时间:2017-12-29 21:42:04

标签: python xml parsing dictionary tags

我有一个字符串,它不是真正的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的最佳方法吗?感谢。

1 个答案:

答案 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')}

测试:https://eval.in/928392