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

如何不使用外部库拆分大型JSON对象为分片存入数据库

解决方案

实现思路

你的需求可以直接用Python内置的标准库完成,无需引入任何第三方依赖,核心逻辑如下:

  • 用Python内置的json模块读取源JSON文件,将顶层数组转换为Python列表
  • 按照你预设的单分片容量对列表做切片拆分
  • 将每个切片单独序列化为JSON格式写入独立文件,通过缩进参数匹配你需要的格式化输出效果

可直接运行的代码

import json

# 可按需修改的配置项
INPUT_FILE = "input.json"  # 源JSON文件路径
PER_CHUNK_COUNT = 3        # 每个分片包含的对象数量
OUTPUT_NAME_TPL = "chunk_{}.json"  # 分片文件命名模板

if __name__ == "__main__":
    # 加载源JSON数据
    with open(INPUT_FILE, "r", encoding="utf-8") as f:
        full_data = json.load(f)
    
    if not isinstance(full_data, list):
        raise TypeError("源JSON的顶层结构必须为数组,和你提供的示例结构一致")
    
    # 分片写入
    total = len(full_data)
    for idx, start_pos in enumerate(range(0, total, PER_CHUNK_COUNT)):
        end_pos = start_pos + PER_CHUNK_COUNT
        current_chunk = full_data[start_pos:end_pos]
        # 生成分片文件
        output_path = OUTPUT_NAME_TPL.format(idx)
        with open(output_path, "w", encoding="utf-8") as f:
            # indent=4 控制输出缩进,和你要求的分片格式完全匹配
            json.dump(current_chunk, f, indent=4, ensure_ascii=False)
        print(f"完成生成分片 {output_path},包含{len(current_chunk)}条数据")

使用说明

  1. 将你需要拆分的源JSON文件重命名为input.json,和上述脚本放在同一个文件夹下
  2. 修改代码里的PER_CHUNK_COUNT参数为你想要的每个分片的对象数量,比如需要每个分片存100条就设置为100
  3. 直接运行脚本即可,生成的分片文件会按序号自动命名,全部为符合JSON规范的数组格式,和你给出的示例分片结构完全一致

2万条数据属于很小的体量,上述代码运行不会有任何内存问题,耗时也基本在1秒以内就能完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:54:05