我有一个平面文件,如下所示:
Soccer
+Team:US
++Shirt:Red & White Stripes
++Shorts:Blue
++Players:17
+++Active:11
++++Forward:2
++++Midfield:4
++++Defense:4
++++Goalkeeper:1
+++Substitute:6
++++Forward:1
++++Midfied:2
++++Defense:3
++++Goalkeeper:
+Team:Mexico
++Shirt:Green
++Shorts:White
++Players:17
+++Active:11
++++Forward:3
++++Midfield:3
++++Defense:4
++++Goalkeeper:1
+++Substitute:6
++++Forward:2
++++Midfield:1
++++Defense:2
++++Goalkeeper:1
将此解析为Python中的数据结构的最有效方法是什么?或者,我如何将其转换为XML,JSON或普通的Python对象?
结果数据结构应该能够支持某种查询,例如在伪代码中,例如:
Soccer[Team='US'][Shirt]
应该能够返回" Red&白色条纹"
同样的顺序,
Soccer[Team='US'][Players][Substitute][Goalkeeper]
应该返回None
是否有一个可以在这里使用的模块?
答案 0 :(得分:2)
对于此类内容,您可以使用Marpa::R2,Perl Marpa, a general BNF parser - parser,parse tree的界面。我对相关问题Processing repeatedly structured text file with python
的回答中有更多解释 ast_traverse()
:Parse values from a block of text based on specific keys