本题来自于Udacity data analyst课程。题目要求从NYtimes developer APIs 获取前一天最热门文章,并返回一个变量元祖,其中包含以下数据:
- 标签:字典列表,其中键是“版块(“section”)”值,值是每个所检索的文章的“标题(“title”)”值。
- URL:所有“media”条目的 URL 列表,“格式”(“format”):标准缩略图(“Standard Thumbnail”)
练习的目的是考察学生从JSON文件中提取信息的能力,和对for循环的掌握程度。课程 UI 中自带一个JSON文件,可以直接编写提取信息的代码。
但是,课程 UI 从网页提前JSON的代码与现在NYtimes的API有所出入,无法获取目前最新的文章信息。可以从官方网站看到目前最新的例子:
https://api.nytimes.com/svc/mostpopular/v2/emailed/7.json?api-key=yourkey
https://api.nytimes.com/svc/mostpopular/v2/shared/1/facebook.json?api-key=yourkey
https://api.nytimes.com/svc/mostpopular/v2/viewed/1.json?api-key=yourkey
根据这个模式,我尝试对课程示范代码作一些更新:
import json
import requests
URL_MAIN = "http://api.nytimes.com/svc/"
URL_POPULAR = URL_MAIN + "mostpopular/v2/"
URL_POPULAR_KIND = {
'view':'viewed/', # 浏览最多的文章
'emailed': 'emailed/', # 电子邮件发送最多的文章
'shared':'shared/'} # 分享最多的文章
API_KEY = '你自己的key'