首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >美观地打印PyParsing树

美观地打印PyParsing树
EN

Stack Overflow用户
提问于 2013-03-13 00:40:35
回答 1查看 829关注 0票数 3

有没有人实现了从PyParsing输出的语法分析树的漂亮打印(最好使用Python的内置pprint模块),最好是缩进和对齐?

EN

回答 1

Stack Overflow用户

发布于 2013-06-07 20:23:46

您可以使用json来实现这一点。

代码语言:javascript
复制
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

然后

代码语言:javascript
复制
print json.dumps(parseresult, cls=PyParseEncoder, sort_keys=False, indent=2)

如果你从json.dumps得到错误,只需为特定数据类型的编码器添加额外的处理程序即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15367061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档