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

如何在Python中从JSON数据(含卫报API返回结果)提取指定元素?

提取Guardian API返回的webTitle字段

我来帮你搞定这个提取字段的问题!首先,咱们先把你的代码补全并优化一下,Guardian的API返回结构是嵌套的,webTitle藏在特定的层级里,咱们一步步来:

首先,确保你已经导入了需要的库:

import requests
import json

然后,把你的请求代码调整得更清晰(记得把YOUR_ACTUAL_API_KEY替换成你自己的真实API密钥):

url = 'http://content.guardianapis.com/search?from-date=2016-01-02&to-date=2016-01-02&order-by=newest&show-fields=all&page-size=1&api-key=YOUR_ACTUAL_API_KEY'
# 发起GET请求
response = requests.get(url)

接下来有个小技巧:requests库自带了json()方法,不用手动调用json.loads(),直接就能把响应转成Python字典:

# 将响应转为Python字典格式
data = response.json()

现在重点来了!Guardian API的返回结构里,所有搜索到的文章都在response -> results这个数组里,而每个文章对象里就包含你要的webTitle字段。因为你设置了page-size=1,所以这个数组里只有一篇文章,咱们可以这样提取:

方法一:遍历结果(适合多文章的情况)

# 获取文章列表
article_results = data['response']['results']
# 遍历每一篇文章(这里只有一篇)
for article in article_results:
    title = article['webTitle']
    print(f"提取到的文章标题:{title}")

方法二:直接取第一篇(适合page-size=1的情况)

article_results = data['response']['results']
# 先判断列表不为空,避免索引错误
if article_results:
    first_title = article_results[0]['webTitle']
    print(first_title)

另外,建议你加上请求成功的判断,避免请求失败时出错:

if response.status_code == 200:
    data = response.json()
    # 这里放上面的提取逻辑
else:
    print(f"请求出错啦,状态码:{response.status_code}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:19:08