1

我想解析一个文本文件,例如,像这样的东西:

div::
    class:yo-d
    text:example
    id:my-class
    h1:: Title
        href:http://www.example.com
    div::
        class:class1
        id:my-class2

它类似于 reStructuredText。
每个标签都以 结尾::并且可以有一些属性attr:value。我想获得这样的东西,一个 Python 字典:

{'div': {'attrs': {'text': 'example', 'class': 'yo-d', 'id': 'my-class'},
         'sub': {'h1': {'content': 'Title', 'attrs': {'href': 'http://www.example.com'}},
                 'div': {'attrs': {'class': 'class1', 'id': 'my-class2'}},
                },
        }
}

sub之后是缩进标签,如果标签后面有东西,::它会进入'content'.

我会使用 Lepl,但我什至不知道从哪里开始,有什么建议吗?

谢谢,
魔方

4

1 回答 1

2

使用 Lepl 的替代方法是 Pyparsing:https ://github.com/pyparsing/pyparsing

我目前正在成功使用 Pyparsing,如果你命名结果,你可以得到命名结果的字典。

于 2010-11-28T12:44:02.877 回答