標籤:

用Python寫個迷你出門問問|10幾行代碼搞定

這是菜鳥學Python的第71篇原創文章

上一篇講了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 |