有没有人使用Python内置的pprint
模块实现了PyParsing输出的解析树的漂亮打印,最好带有缩进和对齐。
有没有人使用Python内置的pprint
模块实现了PyParsing输出的解析树的漂亮打印,最好带有缩进和对齐。
你可以使用 JSON 来实现这个。
import json
class PyParseEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, ParseResults):
x = obj.asDict()
if x.keys():
obj = x
else:
x = obj.asList()
if len(x) == 1:
obj = x[0]
else:
obj = x
else:
obj = super(PyParseEncoder, self).default(obj)
return obj
然后
print json.dumps(parseresult, cls=PyParseEncoder, sort_keys=False, indent=2)
pprint.pprint
可以将字典、列表等数据类型进行漂亮的打印输出。最简单的方法是将解析树转换为列表/字典结构。这种转换是否可行? - hughdbrownasList
:results = parseString(s); pprint(results.asList())
。如果您定义了任何结果名称,可以使用asDict()
或甚至只是dump()
。 - PaulMcG