前戏
使用python做接口自动化,必须用到requests这个库,功能非常的强大,能满足我们大部分的需求。
官网:https://2.python-requests.org//zh_CN/latest/
安装:pip install requests
发送请求
requests发送一个请求非常简单
import requests basic_url = 'http://httpbin.org' # 发送get请求 r = requests.get(basic_url + '/get') print(r.status_code) # 打印状态码 # 发送post请求 r = requests.post(basic_url + '/post') print(r.status_code) # 发送put请求 r = requests.put(basic_url + '/put') print(r.status_code) # 发送delete请求 r = requests.delete(basic_url + '/delete') print(r.status_code)
有时候我们发送请求之后,服务器返回给我们的响应里面,可能会包含乱码或者是在一行显示,类似下面这样
{"result":600001,"data":"","msg":"\u8bfe\u7a0b\u4e0d\u5b58\u5728"}
这时候我们就要用json库进行格式化
import requests import json url = 'http://t.weather.sojson.com/api/weather/city/101030100' r = requests.get(url) r = r.json() # 返回响应的JSON编码内容,如果返回的不是json格式的就会报错,字典类型,不能对r.text进行json() f = json.dumps(r, indent=2, sort_keys=True, ensure_ascii=False) print(f)
index缩进多少,sort_keys排序,ensure_ascii=False将汉字显示出来
结果
{ "cityInfo": { "city": "天津市", "citykey": "101030100", "parent": "天津", "updateTime": "00:19" }, "data": { "forecast": [ { "aqi": 89, "date": "24", "fl": "<3级", "fx": "西南风", "high": "高温 32℃", ...... }, "date": "20190824","status": 200, "time": "2019-08-25 00:30:04" }
这样就能友好的展示了