【发布时间】:2022-07-30 20:33:33
【问题描述】:
我目前正在通过一些事件日志开始使用 pm4py 库。我有一个示例日志,我正在像这样导入:
from pm4py.objects.log.importer.xes import importer as xes_importer
log = xes_importer.apply('financial_log.xes')
如果我现在打印日志的跟踪,标准输出如下所示:
print(log[0])
{'属性': {'REG_DATE': datetime.datetime(2011, 10, 1, 0, 38, 44, 546000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), '概念:名称':'173688','AMOUNT_REQ':'20000'},'事件': [{'org:resource': '112', 'lifecycle:transition': 'COMPLETE', '概念:名称':'A_SUBMITTED','时间:时间戳': datetime.datetime(2011, 10, 1, 0, 38, 44, 546000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'case:REG_DATE': datetime.datetime(2011, 10, 1, 0, 38, 44, 546000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'case:concept:name': '173688', 'case:AMOUNT_REQ': '20000'}, '..', {'org:resource': '10629', 'lifecycle:transition': 'COMPLETE', '概念:名称':'W_Valideren aanvraag','时间:时间戳': datetime.datetime(2011, 10, 13, 10, 37, 37, 26000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'case:REG_DATE': datetime.datetime(2011, 10, 1, 0, 38, 44, 546000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'case:concept:name': '173688', 'case:AMOUNT_REQ': '20000'}]}
但是,为了更好地检查跟踪和事件,我尝试格式化输出以使其更具可读性。我尝试使用 pprint 库但没有任何成功。 这是我尝试过的:
from pprint import pprint
pprint(log, indent=1)
输出如下所示:
[{'属性': {'REG_DATE': datetime.datetime(2011, 10, 1, 0, 38, 44, 546000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), '概念:名称':'173688','AMOUNT_REQ':'20000'},'事件': [{'org:resource': '112', 'lifecycle:transition': 'COMPLETE', '概念:名称':'A_SUBMITTED','时间:时间戳': datetime.datetime(2011, 10, 1, 0, 38, 44, 546000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'case:REG_DATE': datetime.datetime(2011, 10, 1, 0, 38, 44, 546000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'case:concept:name': '173688', 'case:AMOUNT_REQ': '20000'}, '..', {'org:resource': '10629', 'lifecycle:transition': 'COMPLETE', '概念:名称':'W_Valideren aanvraag','时间:时间戳': datetime.datetime(2011, 10, 13, 10, 37, 37, 26000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'case:REG_DATE': datetime.datetime(2011, 10, 1, 0, 38, 44, 546000, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'case:concept:name': '173688', 'case:AMOUNT_REQ': '20000'}]}, '....', {'属性': {'REG_DATE': datetime.datetime(2012, 2, 29, 23, 51, 16, 799000, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600))), '概念:名称':'214376','AMOUNT_REQ':'15000'},'事件': [{'org:resource': '112', 'lifecycle:transition': 'COMPLETE', '概念:名称':'A_SUBMITTED','时间:时间戳': datetime.datetime(2012, 2, 29, 23, 51, 16, 799000, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600))), 'case:REG_DATE': datetime.datetime(2012, 2, 29, 23, 51, 16, 799000, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600))), 'case:concept:name': '214376', 'case:AMOUNT_REQ': '15000'}, '..', {'org:resource': '11169', 'lifecycle:transition': 'COMPLETE', “概念:名称”:“W_Afhandelen 领先”、“时间:时间戳”: datetime.datetime(2012, 3, 1, 9, 27, 41, 325000, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600))), 'case:REG_DATE': datetime.datetime(2012, 2, 29, 23, 51, 16, 799000, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600))), 'case:concept:name': '214376', 'case:AMOUNT_REQ': '15000'}]}]
有什么方法可以打印带有换行符和正确缩进的对象,如 pprint 文档站点上所示?我也愿意接受其他关于如何“漂亮”打印痕迹的建议。
【问题讨论】:
-
输出难以阅读,请同时格式化为代码。
-
@D.L 输出的内容不相关。它应该只是表明它根本没有格式化。