You need to enable JavaScript to run this app. 如何用Python将终端展示的规整JSON原样写入JSON文件
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将终端展示的规整JSON原样写入JSON文件

脚本修改实现方案

本次修改完全保留原有逐行解析非标准JSON源文件的逻辑,核心调整是替换原有直接终端打印的逻辑,将和终端pprint显示效果1:1一致的格式化内容写入本地文件,无格式偏差。

核心改动点

  • 利用pprint内置的流输出参数,将原本输出到终端的内容重定向到内存字符串缓冲区,不直接打印到stdout
  • 保持原有pprint的默认参数(80列行宽、缩进规则、换行逻辑),和终端窗口显示效果完全匹配
  • 增加简单的空行兼容判断,避免源文件末尾空行触发JSON解析报错

注意:不要直接用json.dumps替代pprint的输出,因为两者的缩进规则、长文本换行逻辑、默认引号处理存在细微差异,无法做到和终端显示100%匹配。

完整可运行代码

import json
import pprint
from io import StringIO

data = []
# 逐行读取源文件
with open("latency.json", "r", encoding="utf-8") as fp:
    while True:
        line = fp.readline()
        if not line:
            break
        # 跳过空行,避免解析报错
        line = line.strip()
        if not line:
            continue
        parsed_obj = json.loads(line)
        data.append(parsed_obj)

# 捕获pprint的终端输出内容,保持和原打印参数完全一致
buffer = StringIO()
pprint.pprint(
    data,
    stream=buffer,
    width=80  # 和Linux终端默认80列行宽匹配,完全还原终端显示效果
)
formatted_result = buffer.getvalue()

# 写入本地目标文件
with open("formatted_latency.json", "w", encoding="utf-8") as out_f:
    out_f.write(formatted_result)

效果说明

生成的formatted_latency.json文件内容,和你在Linux终端通过pprint(data)看到的文本完全一致,包括缩进规则、换行位置、数值显示格式,没有任何样式差异。


内容的提问来源于stack exchange,提问作者python3 aswin.py

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 16:54:04