一、介绍
本项目中使用一项 web 服务来查找国际空间站 (ISS) 的当前位置并在地图上绘制其位置。
最终的效果如图:
本项目来自于树莓派(raspberrypi)官网学习项目。
二、获取国际空间站中宇航员的信息
首先需要用到提供国际空间站实时信息的web服务。
http://api.open-/astros.json
该服务返回的是json格式
{"message": "success","number": 3,"people": [{"craft": "ISS","name": "Yuri Malenchenko"},{"craft": "ISS","name": "Timothy Kopra"},{"craft": "ISS","name": "Timothy Peake"}]}
接下来创建python文件,使用python分析打印出空间站宇航员的信息。
导入 urllib.request 和 json 模块。
import jsonimport urllib.request
获取web服务返回的结果
# 将请求地址放入变量中url = "http://api.open-/astros.json"# 调用web服务response = urllib.request.urlopen(url)# 保存返回的json结果result = json.loads(response.read())# 打印出结果print(result)
在控制台打印出的结果为
{people: [{craft: ISS,
ame: Alexey Ovchinin}, {craft: ISS,
ame: Nick Hague}, {craft: ISS,
ame: Christina Koch}],
umber: 3, message: success}
可以看出这是一个有3个键的字典
将字典中people(宇航员)的信息单独取出来
# 打印空间站当前人数number = result[
umber]print("现在空间中有 %s 人:" % number)# 将people放入字典中people = result[people]# 将people单独打印出来for p in people:# 获取宇航员姓名name = p["name"] # 获取宇航员所在飞行器craft = p[craft]print("宇航员 %s 在飞行器 %s 里" % (name,craft