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

如何在Python中按ID合并两个API返回数据并生成符合要求的字典

实现代码

import requests
import json

final_result = []
first_api_url = "https://test.com/api/v1/"

# 请求第一个接口获取主题列表
resp = requests.get(first_api_url)
first_res = json.loads(resp.text)

for subject_item in first_res["results"]:
    # 每个主题单独初始化标签列表,避免数据串扰
    tag_list = []
    second_api_url = f"https://test.com/api/v1/{subject_item['tags_id']}"
    
    # 请求第二个接口获取对应主题的标签
    tag_resp = requests.get(second_api_url)
    tag_res = json.loads(tag_resp.text)
    for tag_item in tag_res["tags"]:
        tag_list.append(tag_item["title"])
    
    # 组装符合要求的结构存入结果
    final_result.append({
        "title": subject_item["title"],
        "tags": tag_list
    })

# 打印验证输出
output = {"results": final_result}
print(output)

核心调整说明

  • 移除全局标签列表,改为在每个主题的循环内单独初始化标签存储列表,避免不同主题的标签累加混淆
  • 对不同接口的返回值做变量名区分,避免重名导致的逻辑错误
  • 每个主题的标签拉取完成后直接组装成要求的字典结构,存入最终结果列表

可选优化点

  • 可添加接口请求状态码判断,避免接口请求失败时报错,示例:
if resp.status_code == 200:
    first_res = json.loads(resp.text)
else:
    # 自定义异常处理逻辑
    print(f"第一个接口请求失败,状态码:{resp.status_code}")
  • 如果接口数据量较大,可以考虑用异步请求提升拉取效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:09:03