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

如何通过requests.get仅获取API返回JSON的指定字段?

问题:API请求时如何直接获取指定字段?

示例数据集

{
    "id": 1,
    "name": "meow",
    "address": "123 meowmeow St, city, state 12345",
    "users": [
        {
            "id": 1,
            "initials": "L.L",
            "checkIn": []
        }
    ]
}

当前调用API的代码

import requests
import json

url_API = "https://blah.com/organizations/api-key/organizations?apiKey=blahblah"

response_API = requests.get(url_API)

data = response_API.text
parse_json = json.loads(data)

yFile = json.dumps(parse_json, indent=4)
print(yFile)

需求

希望直接通过请求仅获取指定字段,排除address字段以及users下的initials字段,最终只保留如下内容:

{
    "id": 1,
    "name": "meow",
    "users": [
        {
            "id": 1,
            "checkIn": []
        }
    ]
}

询问是否可行,还是必须先下载全部数据再筛选;参考过JSON:API相关示例,但不清楚如何构造requests.get的请求URL。


回答

能否直接通过请求获取指定字段,完全取决于目标API是否支持字段筛选功能,常见实现方式如下:

  1. 遵循JSON:API规范的字段筛选
    如果该API符合JSON:API标准,可通过fields查询参数指定返回字段,嵌套资源用[资源名]声明子字段:
  • 顶层字段:fields[organizations]=id,name(假设资源类型为organizations)
  • 嵌套users字段:fields[users]=id,checkIn

拼接后的请求URL示例:

https://blah.com/organizations/api-key/organizations?apiKey=blahblah&fields[organizations]=id,name&fields[users]=id,checkIn
  1. 自定义API筛选参数
    部分API会采用自有规则,比如用exclude排除不需要的字段,或select指定需要的字段:
  • 排除字段示例:?exclude=address,users.initials
  • 指定字段示例:?select=id,name,users.id,users.checkIn

这类规则没有统一标准,必须查看目标API的官方文档确认支持的参数。

如果API不支持任何字段筛选功能,就只能先下载全量数据,再在本地处理筛选:

import requests
import json

url_API = "https://blah.com/organizations/api-key/organizations?apiKey=blahblah"
response_API = requests.get(url_API)
parse_json = response_API.json()

# 删除顶层不需要的字段
del parse_json["address"]
# 删除users下不需要的字段
for user in parse_json["users"]:
    del user["initials"]

print(json.dumps(parse_json, indent=4))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:32:10