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

如何用字典创建JSON文件并存储ndJson处理后的多条数据?

解决ndJSON处理后仅保留最后一条数据的问题

你的问题出在两个核心点:

  • 每次循环都用open('p.json', 'w')打开文件,'w'模式会清空并覆盖原有文件内容,循环结束后自然只留下最后一次写入的数据。
  • 直接打印字典对象到文件,得到的是Python字典的字符串表示(比如带单引号),并非标准JSON格式。

要实现每行一个JSON的ndJSON格式输出,按以下方式修改代码即可:

import json

# 读取源ndJSON文件,过滤空行避免解析报错
with open(r"C:\Users\Lalith K\Downloads\ENUMtransactions.json", 'r') as f:
    data = [json.loads(line) for line in f if line.strip()]

# 循环外打开输出文件,避免重复截断内容
with open('p.json', 'w') as outfile:
    for idx, item in enumerate(data):
        if idx % 2 == 0:
            # 将Python字典转为标准JSON字符串
            json_str = json.dumps(item)
            # 写入文件并添加换行符,保证每行一条JSON
            outfile.write(json_str + '\n')
            # 控制台输出与文件内容完全一致
            print(json_str)

关键改动说明:

  • 将输出文件的open操作移到循环外部,用'w'模式一次性打开,避免每次循环都清空文件。
  • 使用json.dumps()把字典转换为符合JSON规范的字符串,确保文件内容是标准可解析的JSON格式。
  • 写入时手动添加换行符\n,保证每条JSON单独占一行,和控制台输出格式匹配。
  • 用enumerate替代range(len(data)),更简洁地获取索引和对应元素。

处理完成后,p.json会包含所有符合条件的JSON数据,每行一条,和控制台打印的内容完全一致。

内容的提问来源于stack exchange,提问作者Lalit Kumar Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:26:08