两个问题:
- 您缺少
pp.Dict
周围pp.delimitedList
,使asDict
在内部结果正常工作 - 您仅
asDict
在最外层ParsingResult
实例上调用,而在内层ParsingResult
“未解释”
我尝试了以下方法:
from pyparsing import *field_name = field_val = Word(alphanums)colon = Suppress(Literal(':'))expr = Dict(Group( field_name + nestedExpr(content = Dict(delimitedList( Group(field_name + colon + field_value), delim = ';' )) )))
然后像这样使用它:
>>> res = expr.parseString('foo(bar:baz;x:y)')>>> type(res['foo'])<class 'pyparsing.ParseResults'>>>> { k:v.asDict() for k,v in res.asDict().items() }{'foo': {'x': 'y', 'bar': 'baz'}}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)