You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中控制JSON输出的换行与缩进格式

实现JSON输出中每个Lemma条目单独占一行

要让每个"lemma": {对应字典}单独占一行,标准json.dump的默认参数组合没法直接实现,因为它会对嵌套的字典/列表也进行换行缩进。可以通过手动构建JSON字符串的方式精准控制格式,具体步骤如下:

解决方案代码

替换原代码中写入JSON文件的部分,改用以下代码:

import json

# 处理每个lemma条目,转成紧凑的键值对字符串
entries = []
for lemma, token_data in token_info.items():
    # 将嵌套的字典转成无换行的紧凑JSON字符串
    compact_data = json.dumps(token_data, ensure_ascii=False, separators=(',', ': '))
    entries.append(f'    "{lemma}": {compact_data}')

# 拼接成完整的JSON结构
final_json = "{\n" + ",\n".join(entries) + "\n}"

# 写入文件
with open('token_info.json', 'w', encoding='utf-8') as f:
    f.write(final_json)

说明

  1. 先用json.dumps把每个lemma对应的嵌套字典转成无换行的紧凑格式,避免内部结构拆分换行;
  2. 给每个键值对条目加上外层缩进(4个空格),再用逗号+换行连接所有条目;
  3. 最后包裹上JSON的顶层大括号,即可得到目标格式:每个lemma条目单独占一行,内部字典紧凑显示。

额外提醒

原代码中如果同一个lemma在语料中出现多次,后面的token数据会覆盖前面的(因为token_info[lemma] = current_token是直接赋值),如果需要保留所有出现的token信息,建议把值改成列表,比如token_info.setdefault(lemma, []).append(current_token)。

内容的提问来源于stack exchange,提问作者sparxy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:55:16