用Python寫個迷你出門問問|10幾行代碼搞定
上一篇講了JSON文件的用法,小夥伴們感覺好像寫的很不過癮,後台有好幾個小夥伴問我能不能再寫一篇,其中還有兩個小夥伴給我留言,問我什麼是Web Api,好今天我會解釋一下,同時利用百度開放的API寫一個簡單的出門問問,算是進一步趣味學JSON文件.
1.什麼是Web API
Web API是網路應用程序介面,包含了廣泛的功能,其中的大部分均可以通過API(應用程序編程介面)訪問.
現在的網路上,有大量的Web服務和應用,會給我們提供各種各樣的服務,比如國外的Yahoo,Google,國內的百度,阿里都有大量的API可以讓我們調用
一般返回的數據是以JSON格式為主(CSV,XML也可以),大部分都需要提供key和secret來保證其使用的安全性
而且有一些API的訪問是比如違章啊,快遞查詢,按照次數收費的
今天我們就來寫一個迷你版的出門問問的小程序,出門問問最主要的需要提供:
目的地的天氣
目的地的旅遊景點
目的地的美食
目的地的好玩的
2.申請百度開發者賬號
1).調用百度Web API 之前,先要去申請一個開發者的賬戶:
登錄百度帳號
然後再去申請一個密鑰
2).創建應用,填入一些資料
我們可以選擇最簡單的微信小程序 應用類型,然後提交之後就會獲得一個key
3.天氣查詢程序
1).構造天氣查詢URL
需要填入申請的key和城市名字(中文,拼音都可以)
2).利用requests模塊取獲取網站上的數據
import request
response=requests.get(url)
weather_dicts=response.json()
我們把網站的JSON數據轉化成字典,但是JSON數據很複雜,嵌套非常多,一坨一坨的。為了解決這個問題,我建議大家最好用pprint模塊
3).利用pprint模塊
這個號稱Python裡面的美觀印表機,可以用於生成數據結構的一個美觀視圖。讓人可以非常直觀清晰的看到這個數據的結構,非常方便,而且還會把鍵值按照字母排序,真是是居家旅行必備啊~~
pprint(weather_dicts)
4).顯示天氣信息
所有的天氣信息都在weather_dicts下面的result鍵值下面(大家運行一下pprint(weather_dicts)就看的很清楚了),而這個result又是一個巨大的列表,列表裡面有一個字典,這個字典包含了城市名,PM2.5,未來4天的天氣數據等等.
幸好有pprint,不然看的頭都暈, 我們只需要提取一些重要的信息就可以了.
weather_data=weather_dicts[results][0][weather_data]
print weather_dicts[results][0][currentCity]
for each_item in weather_data:
tprint each_item[date]
tprint each_item[temperature]
tprint each_item[weather]
tprint each_item[wind]
運行一下程序:
啊呀是不是很爽,上海4天的天氣都出來了.我們可以在程序的入口加一個city參數,這樣可以獲取全國各地的天氣,比如你輸入北京,廣州,武漢,青島...
4.查詢熱門城市旅遊景點,美食,好玩的
下面我們再來增加一個功能,就是查詢熱門城市的一些信息,比如我們去哪裡玩,想查一些飯店,酒店的信息,有那些好玩的,好吃的~~,代碼跟查詢天氣很類似
1).同樣構造查詢Place的URL
2).用pprint模塊列印一些數據結構,然後獲取信息
pprint(places_dicts),type(places_dicts)
這裡加了一些判斷條件,因為有一些飯店或者景點不一定有電話和地址,所以在獲取之間,先判斷一下key在不在字典裡面,不然會報錯的
3).運行一下程序
search_place(hot_place="旅遊",city="上海")
輸入:
search_place(hot_place="飯店",city="上海")
search_place(hot_place="好吃的",city="上海")
會返回上海的一些飯店信息和好吃的資料
用Python做個迷你的出門問問就講到這裡,是不是覺得蠻好玩的,其實上面的代碼還是比較糙的,只是拋磚引玉,有興趣的同學可以動手試一下,而且利用微信公眾號的介面可以做一個更全更好玩的出門問問,今天的文章希望能給初學者一些啟發,若有什麼不懂的,也可以留言跟我探討交流.
歡迎大家關注微信公眾號 【菜鳥學Python】,更多好玩有趣的Python原創教程,趣味演算法,經驗技巧,行業動態,盡在菜鳥學Python,一起來學python吧
歷史人氣文章
Python語言如何入門
用Python寫個彈球的遊戲
Python寫個迷你聊天機器人|生成器的高級用法
用Python破解微軟面試題|24點遊戲
一道Google的演算法題 |Python巧妙破解
推薦閱讀:
※解決 macOS 下 Python 安裝 Dlib 的問題:Cmake 找不到 boost
※決策樹演算法的Python實現
※Python資料推薦 + IDE推薦+經典練手項目(開源免費)
※基於 Flask 與 MySQL 實現番劇推薦系統
TAG:Python |