查看原文
其他

Python API教程:参数的使用

有干货的 21CTO 2022-05-25

将API与查询参数配合一起使用


在前面的例子中,我们使用http://api.open-notify.org/astros.json,并没有使用任何参数。只是发出一个GET请求,API返回给当前空间人数的数据。


一般情况下,API节点需要再增加相关参数。比如http://api.open-notify.org/iss-pass.json节点,该点会告诉我们国际空间站目前所在的经纬度。


如果我们看一下API文档,它会要求我们给出lat和long两个参数,分别是纬度和经度参数。


因为,在requests中,需要在的params请求添加可选的关键字参数,开发者可以使用这些参数做为Python的字典类型数据,然后将它们传递给requests.get函数。


以下是使用纽约市坐标的字典样式,如下代码:


parameters = { "lat":40.71, "lon":-74}



也可以在URL上添加相关参数。如下列参数:


http://api.open-notify.org/iss-pass.json?lat=40.71&loin;=-74。

将参数设置为字典是最适合的,requests库可以处理一些必要的事情,例如正确设置查询参数的格式,我们不必担心插入URL字符串产生的副作用。


我们来增加坐标值来进行请求操作,看看接口返回什么内容。


请看如下代码:


response = requests.get("http://api.open-notify.org/iss-pass.json", params=parameters)print(response.json())


返回结果类似于如下:


{ "message": "success", "request": { "altitude": 100, "datetime": 1568062811, "latitude": 40.71, "longitude": -74.0, "passes": 5 }, "response": [ { "duration": 395, "risetime": 1568082479 }, { "duration": 640, "risetime": 1568088118 }, { "duration": 614, "risetime": 1568093944 }, { "duration": 555, "risetime": 1568099831 }, { "duration": 595, "risetime": 1568105674 } ]}

通过时间来掌握细节


JSON响应时间与指定的文档相匹配:


1、有3个key的字典

2、response的第三个键表示执行的时长

3、每个执行时长,可以使用risetime和duration来计算


可以使用JSON对象提取执行时间:


pass_times = response.json()['response']jprint(pass_times)

[ { "duration": 395, "risetime": 1568082479 }, { "duration": 640, "risetime": 1568088118 }, { "duration": 614, "risetime": 1568093944 }, { "duration": 555, "risetime": 1568099831 }, { "duration": 595, "risetime": 1568105674 }]


接下来,可以使用循环来提取5个risetime值。如下代码:


risetimes = []

for d in pass_times: time = d['risetime'] risetimes.append(time)

print(risetime)


会有如下之显示:


[1568082479, 1568088118, 1568093944, 1568099831, 1568105674]

这些显示的数字是Unix时间戳,其代表从1970年到现在的秒数。


使用Python的datetime来做一下转换:datatime.fromtimestamp()方法来显示为可读的时间。如下代码:


from datetime import datetime

times = []

for rt in risetimes: time = datetime.fromtimestamp(rt) times.append(time) print(time)

如下执行的结果:


2020-12-09 21:27:592020-12-09 23:01:582020-12-10 00:39:042020-12-10 02:17:112020-12-10 03:54:34


如此看来,国际空间站经常经过纽约市,5次发生在7小时之内。



小结


在本教程中,我们了解到:


1、什么是API

2、请求与响应代码的类型

3、如何发出请求

4、使用参数进行请求

5、从API中提取与显示JSON数据


祝您使用顺利。


作者:万能的大雄


相关阅读:


Python API教程:API入门(上)

这个可能打败Python的编程语言,正在征服科学界

Python缘何成为数据科学家的秘密武器?


关于21CTO

21CTO.com是中国互联网第一技术社交与学习平台。为CTO、技术总监,技术专家,架构师、技术经理,高级研发工程师、PM等提供学习成长,教育培训,工作机会、人脉影响力等产品,同时为企业提供人才招聘,企业培训,软件研发等服务。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存