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

如何读取JSON文件中嵌套API链接并将返回数据填充至DataFrame

方案可行性说明

该需求完全可落地实现,不需要用do while循环遍历,基于Python的pandas+requests库就能高效完成,还可通过缓存机制避免重复请求相同API链接,大幅提升执行效率。

具体实现步骤

1. 依赖安装

执行命令安装所需工具库:

pip install pandas requests

2. 核心实现代码

这里直接给出可直接修改使用的示例代码,包含缓存、异常处理逻辑:

import pandas as pd
import requests
from functools import lru_cache
import time

# 配置:如果API需要身份验证,在此处添加请求头,比如对应ServiceNow接口的基本认证
HEADERS = {
    # "Authorization": "Basic 替换为你的认证字符串",
    "Accept": "application/json"
}
# 固定携带的请求参数
PARAMS = {"sysparm_display_value": "true"}

# 加缓存装饰器,相同链接只会请求一次,避免重复调用浪费资源
@lru_cache(maxsize=None)
def get_parent_display_value(api_link: str):
    try:
        # 如果接口有调用频率限制,可解开下行注释添加等待时间
        # time.sleep(0.5)
        resp = requests.get(api_link, headers=HEADERS, params=PARAMS, timeout=10)
        resp.raise_for_status()
        result = resp.json()["result"]
        # 按需修改取值路径即可,当前逻辑是返回接口返回结果中u_parent对应的display_value
        return result.get("u_parent", {}).get("display_value", "")
    except Exception as e:
        print(f"请求链接{api_link}失败: {str(e)}")
        return ""

# ---------------------- 主逻辑 ----------------------
# 1. 加载初始JSON数据到DataFrame,此处替换为你自己的JSON加载逻辑
initial_data = [
    {
        "u_name": "******",
        "u_parent": {
            "display_value": "*****",
            "link": "https://*****.******.com/api/now/table/u_region_hierarchies/ed7f652f1b29341051380e93cc4bcbd7"
        },
        "sys_id": "159967df1b75601070bfdb9cbc4bcb35",
        "sys_updated_by": "mlarcheveque",
        # 其余字段省略
    }
]
df = pd.DataFrame(initial_data)

# 2. 提取u_parent的link字段,调用接口获取目标值,新增到df的新列
df["u_parent_correct_display"] = df["u_parent"].apply(lambda x: get_parent_display_value(x["link"]) if isinstance(x, dict) and x.get("link") else "")

# 此时df已经包含你需要的正确父级display_value字段,可直接导出或后续处理
print(df.head())

3. 多层级父级遍历扩展

如果你需要递归获取所有层级的父级(比如当前父级还有上级父级,一直到顶层为止),只需要修改get_parent_display_value函数,增加递归判断逻辑即可。

注意事项
  • 身份认证参数请根据你的API实际要求补充,避免请求被拦截
  • 缓存机制可大幅降低API调用量,相同链接只会请求一次,适合存在大量重复父级链接的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:36:04