【问题标题】:converting a string of tags into a dict in python在python中将一串标签转换为字典
【发布时间】:2017-12-29 21:42:03
【问题描述】:

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

【问题讨论】:

    标签: python xml parsing dictionary tags


    【解决方案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

    【讨论】:

    • 谢谢...周末后我会深入检查一下。非常感谢
    猜你喜欢
    • 2011-06-10
    • 2012-06-14
    • 1970-01-01
    • 2018-05-19
    • 2013-03-13
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多