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

如何通过Python requests.get()获取API指定数据?

解决方案

首先要明确:能否在请求阶段直接获取指定数据,完全取决于你调用的API是否提供查询过滤功能。这是避免全量加载后筛选的唯一可行方式。

情况1:API支持查询过滤参数(最优解)

如果API文档说明支持根据fruit字段过滤,通常会提供以下几种参数形式,你可以根据API要求构造请求:

示例1:支持多值fruit参数

很多API允许重复传递同一个参数来指定多个值,比如:

import requests

url = "https://..."
headers = {"Accept":"application/json","Content-Type":"application/json","Authorization":"..."}
desired_fruits = ['apple', 'banana']

# requests会自动处理为 ?fruit=apple&fruit=banana
params = {"fruit": desired_fruits}
response = requests.get(url=url, headers=headers, params=params)
filtered_data = response.json()

示例2:支持逗号分隔的参数

有些API要求用逗号拼接多个值,比如:

params = {"fruits": ",".join(desired_fruits)}
response = requests.get(url=url, headers=headers, params=params)
filtered_data = response.json()

示例3:支持结构化过滤语法(如OData)

部分API遵循标准过滤规范(比如OData的$filter),写法类似:

# 构造OData风格的过滤条件:fruit in ('apple','banana')
filter_str = f"fruit in ({','.join([f"'{f}'" for f in desired_fruits])})"
params = {"$filter": filter_str}
response = requests.get(url=url, headers=headers, params=params)
filtered_data = response.json()

情况2:API不支持任何过滤参数(无其他选择)

如果目标API没有提供过滤功能,那你只能先全量获取数据,再在本地筛选。这种情况下可以用列表推导式高效处理:

import requests

url = "https://..."
headers = {"Accept":"application/json","Content-Type":"application/json","Authorization":"..."}
desired_fruits = ['apple', 'banana']

response = requests.get(url=url, headers=headers)
full_data = response.json()
# 本地筛选指定水果的记录
filtered_data = [item for item in full_data if item["fruit"] in desired_fruits]

关键提示

一定要查阅目标API的官方文档,确认它支持的查询参数格式——不同API的过滤规则差异极大,文档是最准确的参考依据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:15:07