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

如何使用Python将API返回的多个JSON响应合并写入单个JSON文件

解决方案

方案1:导出为标准JSON数组(适合中小数据量,符合通用JSON规范)

你现有代码已经完成了接口响应拉取、存入列表的逻辑,仅缺请求异常校验和序列化写入文件的步骤即可实现需求,完整代码如下:

import requests
import json
from requests.auth import HTTPBasicAuth

# 按需补充你的配置参数
url = "你的API请求地址"
user = "登录用户名"
password = "登录密码"
headers = {} # 接口要求的请求头

account_number=['sds','sdadf','rewer']
data_list=[]

for i in account_number:
    data = {"accountNumber" : i }
    try:
        pull = requests.post(
            url,
            auth=HTTPBasicAuth(user.strip(),password),
            json=data,
            headers=headers,
            timeout=10 # 新增超时配置,避免请求无限挂起
        )
        pull.raise_for_status() # 接口返回4xx/5xx状态码时直接抛出异常,方便排查问题
        output = pull.json() # requests内置json解析方法,无需手动调用json.loads
        data_list.append(output)
    except Exception as e:
        print(f"账号{i}数据拉取失败,错误信息:{e}")
        continue # 单个账号拉取失败不中断整体流程

# 一次性将完整列表写入标准JSON文件
with open("api_result.json", "w", encoding="utf-8") as f:
    json.dump(
        data_list,
        f,
        ensure_ascii=False, # 保留中文等非ASCII字符,避免乱码
        indent=2 # 新增缩进格式化,提升文件可读性
    )

该方案生成的是标准JSON数组结构,所有JSON解析工具都可以直接读取,缺点是所有数据会暂存在内存中,不适合超大数据量场景。

方案2:导出为JSON Lines格式(适合大数据量,内存占用极低)

如果账号量级极大、单条接口返回数据量很高,内存无法承载全量数据,可以使用逐行追加的JSON Lines格式,无需把所有数据攒在内存中:

import requests
import json
from requests.auth import HTTPBasicAuth

# 配置参数同上
account_number=['sds','sdadf','rewer']

# 提前打开文件,拉取一条写入一条
with open("api_result.jsonl", "w", encoding="utf-8") as f:
    for i in account_number:
        data = {"accountNumber" : i }
        try:
            pull = requests.post(
                url,
                auth=HTTPBasicAuth(user.strip(),password),
                json=data,
                headers=headers,
                timeout=10
            )
            pull.raise_for_status()
            output = pull.json()
            # 单个JSON对象序列化后写入一行,末尾加换行符
            f.write(json.dumps(output, ensure_ascii=False) + "\n")
        except Exception as e:
            print(f"账号{i}数据拉取失败,错误信息:{e}")
            continue

该方案内存占用极低,支持百万级以上数据量存储,读取时逐行解析即可,Python pandas库的read_json方法指定lines=True参数可直接读取该格式文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:48:05