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

使用jq和Python拆分JSON为独立文件时脚本无限运行问题

问题原因与修复方案

核心问题根源

  • Python语法中不存在++前置自增运算符,你写的++i等价于+(+i),仅会对i做两次正数运算,不会修改i的实际值,导致i永远等于0,i <= 100的循环条件永远成立,因此进入死循环,不会停止运行。
  • 额外逻辑问题:原JSON只有100个对象,索引范围为0~99,循环条件写i <= 100会多生成一个内容为null的100.json无效文件。

最小改动修复方案

仅调整自增语句和循环条件即可解决死循环问题,修正后代码如下:

import os

i = 0
while i < 100:
    os.system(f"cat _metadata.json | jq '.[{i}]' > {i}.json")
    i += 1

更优实现方案

无需依赖系统的cat、jq命令,直接用Python原生json库处理,执行效率更高、无外部依赖、跨平台可用:

import json

# 读取原JSON文件
with open("_metadata.json", "r", encoding="utf-8") as f:
    data = json.load(f)

# 遍历拆分写入单个文件
for idx, item in enumerate(data):
    with open(f"{idx}.json", "w", encoding="utf-8") as f:
        json.dump(item, f, ensure_ascii=False, indent=2)

内容的提问来源于stack exchange,提问作者Ben K。

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:18:05