本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes
我們經常需要使用Python調用Web應用編程接口(API),大部分的API返回的都是易於處理的格式(如JSON或CSV),本節演示如何處理返回類型為JSON的API。
一、調用天氣API
比如需要獲取今天及後續幾天的天氣情況,我們可以調用天氣API,網上有很多接口,大家可以自己百度搜索。我們在瀏覽器輸入API的地址,返回了一串字符串。
這是一個JSON格式的字符串,為了方便查看,我們用notepad++進行格式化。需要安裝JSON Viewer插件,在「插件->插件管理」裡面可以找到這個插件。安裝後選擇「Show JSON Viewer」會展示左邊的樹狀結構,方便我們進行分析,點「Format JSON」後會將這段文字自動排版,便於我們分析內容。
我們要做的是用Python訪問這個連結,獲取返回結果,然後對結果進行分析,提取其中的天氣數據,代碼如下:
import requests# 執行API調用並存儲響應url = 'xxweather_mini?citykey=101010100'r = requests.get(url)print("Status code:", r.status_code)# 將API響應存儲在一個變量中response_dict = r.json()# 處理結果forecast = response_dict['data']['forecast']for item in forecast:print(item['date'],item['type'],item['low'],item['high'])
代碼說明:
1、調用API接口需要用到requests模塊,如果沒安裝,可以在CMD命令行下輸入如下命令進行安裝:
pip install --user requests
2、url參數就是我們要調用的API接口地址。
3、使用requests.get請求WEB地址,將相應回來的對象存儲在變量r中。
4、響應對象有一個status_code 的屬性,狀態碼200表示請求成功。
5、使用方法json() 將返回內容轉換為一個Python字典
6、通過response_dict['data']['forecast']找到forecast節點。
7、用for循環提取出天氣信息。
二、擴展
Request返回的對象有很多屬性,我們都可以列印出來看看。
r.encoding #獲取當前的編碼r.encoding = 'utf-8' #設置編碼r.text #以encoding解析返回內容。字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼。r.content #以字節形式(二進位)返回。字節方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮。r.headers #以字典對象存儲伺服器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回Noner.status_code #響應狀態碼r.raw #返回原始響應體,也就是 urllib 的 response 對象,使用 r.raw.read()r.ok # 查看r.ok的布爾值便可以知道是否登陸成功#*特殊方法*#r.json() #Requests中內置的JSON解碼器,以json形式返回,前提返回的內容確保是json格式的,不然解析出錯會拋異常r.raise_for_status() #失敗請求(非200響應)拋出異常
本節介紹了如何用Python調用WEB應用編程接口(API),並對返回的數據進行解析。感謝您的耐心觀看!長按文末點讚送三連,支持本文作者多寫點~
#Python入門教程#