VS Code Jupyter交互式模式下如何格式化显示完整堆栈跟踪
解决VS Code Jupyter完整堆栈跟踪格式化问题
VS Code端解决方案
- 内置Log模式直接渲染:
打开导出的JSON文件后,点击右下角状态栏的「Plain Text」,切换为「Log」语言模式。VS Code的Log模式会自动解析ANSI颜色转义序列,直接渲染出带颜色高亮的可读堆栈跟踪,无需额外安装扩展。 - 专用扩展增强体验:
若Log模式满足需求,可安装ANSI Colors扩展,它能更精准地解析和高亮ANSI格式的内容,让stack字段在编辑器里直接清晰显示。另外搭配JSON Formatter扩展,先格式化整个JSON文件,能更方便定位到stack字段。
CLI工具处理方案
- Python脚本清理格式化:
写个极简脚本读取JSON中的stack字段,移除ANSI转义并输出干净的堆栈:
替换文件名后运行,就能得到纯文本格式的完整堆栈,也可以将结果写入文件留存。import json import re def strip_ansi(text): ansi_regex = re.compile(r'\x1B(?:[@-Z\\-_]|\[.*?[a-zA-Z])') return ansi_regex.sub('', text) with open('你的输出文件名.json', 'r') as f: data = json.load(f) print(strip_ansi(data['stack'])) - 现成CLI工具组合处理:
先安装ansi2txt(pip install ansi2txt)和jq(系统包管理器安装),然后用命令行直接提取并转换:
执行后会把带ANSI的内容转成整洁的纯文本堆栈,保存到指定文件中。jq -r '.stack' 你的输出文件名.json | ansi2txt > 格式化后的堆栈.txt
额外优化技巧
不想每次导出JSON?直接在VS Code的设置里搜索Jupyter: Output Limit,把数值调大(比如设为100000),这样交互式窗口就能直接显示完整堆栈,不用再导出处理。
内容的提问来源于stack exchange,提问作者Cornelius Roemer
相关产品推荐
相关产品推荐

