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

基于JSON路径的REST API用户数据通用提取方案健壮性优化问询

通用REST API用户数据解析方案需求与实现挑战

我正在推进一个项目,需要调用多种REST API,这些API的返回格式各不相同,但都包含用户核心信息(姓名、邮箱、状态等)。项目核心目标是实现一套可解析任意API响应并提取指定用户数据的方案,输入为「响应字段与目标字段的映射关系」。

目前计划采用Python的jsonpath-ng包,通过指定JSON路径提取数据,但面临的核心挑战是如何让代码具备健壮性,能够适配任意结构的JSON响应。


示例API响应

Response 1

{
    "data": [
        {
            "type": "users",
            "id": "123",
            "attributes": {
                "name": "Test user",
                "handle": "abc.user@test.com",
                "created_at": "2021-03-29T01:30:16.346678+00:00",
                "modified_at": "2023-10-28T00:59:36.404897+00:00",
                "email": "abc.user@test.com",
                "icon": "https://test.com",
                "title": "",
                "verified": true,
                "service_account": false,
                "disabled": false,
                "allowed_login_methods": [],
                "status": "Active",
                "mfa_enabled": false
            }
       }
    ]
}

Response 2

{
    "data": {
        "userFunctionalPermissions": [
            {
                "userName": "aaa_test1",
                "status": "Active",
                "functionalPermissions": [
                    {
                        "functionalPermission": "Index.AgreeMismatch",
                        "directAssociation": true,
                        "assignedViafunctionalPermissionRole": []
                    }
                ]
            }
        ]
    }
}

映射规则示例

映射关系以JSON格式定义,键为目标字段名,值为响应中的JSON路径。例如:

{"email": "attributes.email", "status": "status"}

初步实现步骤

  • 获取数据数组:针对不同API的结构,先定位到包含用户信息的数组节点
    from jsonpath_ng import parse
    
    # 针对Response 2的示例代码
    query = parse("data.userFunctionalPermissions[*]")
    for match in query.find(Response2_json):
        print(match.value)
    
  • 基于定位到的用户节点,使用JSON路径提取指定字段:遍历映射规则,对每个目标字段执行对应的JSON路径查询,提取值并组装成统一格式的用户数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:40:03