日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python实现输入城市查询天气

發(fā)布時間:2023/12/31 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现输入城市查询天气 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近在學(xué)習(xí)用python調(diào)用webservice接口后,經(jīng)過測試和舉例,做簡單的數(shù)據(jù)解析,得到輸入城市查詢天氣的代碼。
可以查看如何用python調(diào)用webservice接口文章,以及通過城市查詢天氣報type not found錯誤。

輸入城市名稱獲取天氣

from suds.client import Client from suds.xsd.doctor import ImportDoctor,Import url = 'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl' imp = Import('http://www.w3.org/2001/XMLSchema',location='http://www.w3.org/2001/XMLSchema.xsd') imp.filter.add('http://WebXml.com.cn/') c = Client(url,doctor = ImportDoctor(imp)) print(c.service.getWeatherbyCityName(u"成都")

運行上述代碼,我們發(fā)現(xiàn)得到很多數(shù)據(jù),有些數(shù)據(jù)用不著,比如圖片,風(fēng)向,結(jié)果如下

解析數(shù)據(jù)

①為了友好體驗,將城市名弄成可輸入類型

city_name = input("請輸入城市名(按Enter結(jié)束):")

②將通過接口返回的數(shù)據(jù)類型轉(zhuǎn)換成字符類型,然后再截取我們想要的數(shù)據(jù)。因為我們需要的數(shù)據(jù)是從string[]=開始,因此我們截取之后的數(shù)據(jù),因此就有了以下代碼

from suds.client import Client from suds.xsd.doctor import ImportDoctor,Import url = 'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl' imp = Import('http://www.w3.org/2001/XMLSchema',location='http://www.w3.org/2001/XMLSchema.xsd') imp.filter.add('http://WebXml.com.cn/') c = Client(url,doctor = ImportDoctor(imp)) city_name = input("請輸入城市名(按Enter結(jié)束):") message = str(c.service.getWeatherbyCityName(city_name)) message = message.split("string[] =")[-1] print(message)

得到結(jié)果如下字符串,發(fā)現(xiàn)存在換行符和多與的符號

③ 替換多余的換行符合、空格、引號

from suds.client import Client from suds.xsd.doctor import ImportDoctor,Import url = 'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl' imp = Import('http://www.w3.org/2001/XMLSchema',location='http://www.w3.org/2001/XMLSchema.xsd') imp.filter.add('http://WebXml.com.cn/') c = Client(url,doctor = ImportDoctor(imp)) city_name = input("請輸入城市名(按Enter結(jié)束):") message = str(c.service.getWeatherbyCityName(city_name)) message = message.split("string[] =")[-1] message = message.replace("\n", "").replace(" ", "").replace('"', "") print(message)

替換后的數(shù)據(jù)看起來雖然不太好看,至少更明確了,name就來得到自己想要的數(shù)據(jù)吧

④根據(jù)逗號分離,得到自己想要獲取的數(shù)據(jù),我是自己組成字典看起來明確一點,最終如下

from suds.client import Client from suds.xsd.doctor import ImportDoctor,Import url = 'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl' imp = Import('http://www.w3.org/2001/XMLSchema',location='http://www.w3.org/2001/XMLSchema.xsd') imp.filter.add('http://WebXml.com.cn/') c = Client(url,doctor = ImportDoctor(imp)) city_name = input("請輸入城市名(按Enter結(jié)束):") message = str(c.service.getWeatherbyCityName(city_name)) message = message.split("string[] =")[-1] message = message.replace("\n", "").replace(" ", "").replace('"', "") message_list = [] message_list += message.split(",") message_dict = {"城市": a[1], "查詢時間": a[4], "天氣": a[6], "溫度": a[5], "城市描述": a[-2]} print(message_dict)

鐺鐺,以下就是我想要的最終結(jié)果

將py文件打包成exe來執(zhí)行

注意,打包是需要安裝pyinstaller來執(zhí)行打包,為了使提示更加持久,用tkinter給了Windows彈框,注意python2是TKinter。至于安裝pyinstaller出錯了的話,可以查看安裝pyinstaller,完整代碼如下

from suds.client import Client from suds.xsd.doctor import ImportDoctor,Import import tkinter.messagebox url = 'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl' imp = Import('http://www.w3.org/2001/XMLSchema',location='http://www.w3.org/2001/XMLSchema.xsd') imp.filter.add('http://WebXml.com.cn/') c = Client(url,doctor = ImportDoctor(imp)) city_name = input("請輸入城市名(按Enter結(jié)束):") message = str(c.service.getWeatherbyCityName(city_name)) message = message.split("string[] =")[-1] message = message.replace("\n", "").replace(" ", "").replace('"', "") message_list = [] message_list += message.split(",") message_dict = {"城市": a[1], "查詢時間": a[4], "天氣": a[6], "溫度": a[5]} tkinter.messagebox.showinfo(message=message_dict)

如上代碼,最終執(zhí)行時exe文件時,在Windows彈框內(nèi)容如下。等熟悉tkinter后再來優(yōu)化最后一步,先這樣吧

總結(jié)

以上是生活随笔為你收集整理的python实现输入城市查询天气的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。