Homework Overview
API - Application Programming Interface
目标: 通过API获取真实数据
内容
- 选择合适的API
- 使用 requests 模块来对 API 发送请求、传递参数、接受返回的数据
- 处理 API返回的数据,转换为 Python 中合适的数据结构
基础任务
- 输入城市名,返回该城市最新的天气数据;
- 输入指令,打印帮助文档(一般使用 h 或 help);
- 输入指令,退出程序的交互(一般使用 quit 或 exit);
- 在退出程序之前,打印查询过的所有城市
进阶任务
- 之前只在输入城市名时查询天气,现在来增加个定时查询天气的功能?
- 选一个国内 API 和国外 API 分别进行调用,了解不同的调用姿势。更进一步,如果你来设计 API ,你会怎么设计?
- 给程序增加温度单位转换功能?
Exploring API
- API 是什么,解决什么问题?
- API 一般接收什么输入,返回什么数据?
- 互联网上有哪些类型的 API ?他们为什么要把 API 开放出来?
作业思路
Two API Choices:
- Open Weather API
- 心知天气
- getting input from terminal
- find city weather
- API get weather
- Error handle, 查无此城市 --> 重新查询
- history, create logs to record each query
- If sentence,
- help
- history
- quit
- city
问题
logs出错
UnboundLocalError: local variable 'logs' referenced before assignment
Solutions
在调用logs的函数内将其设为全局变量 global logs
;
NOT RECOMMENDDED - NEED BETTER SOLUTION
Next Steps
- 测试个中文API
- 重复代码需要更好的方式处理
- 显示更多的天气细节
Change Log
2017.1.29