Lepl的解析器

时间:2010-11-28 09:53:00

标签: python parsing lepl

我想解析一个文本文件,例如:

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,但我甚至不知道从哪里开始,有什么建议吗?

谢谢,
魔方

1 个答案:

答案 0 :(得分:2)

使用Lepl的另一种方法是Pyparsing:http://pyparsing.wikispaces.com/

我目前正在成功使用Pyparsing,如果您为结果命名,则可以输出命名结果的词典。