我想解析一个文本文件,例如:
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,但我甚至不知道从哪里开始,有什么建议吗?
谢谢,
魔方
答案 0 :(得分:2)
使用Lepl的另一种方法是Pyparsing:http://pyparsing.wikispaces.com/
我目前正在成功使用Pyparsing,如果您为结果命名,则可以输出命名结果的词典。