這篇文章主要介紹如何使用python腳本實現(xiàn)查詢火車票工具,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
站在用戶的角度思考問題,與客戶深入溝通,找到左權(quán)網(wǎng)站設計與左權(quán)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋左權(quán)地區(qū)。python的數(shù)據(jù)類型有哪些?python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標識,內(nèi)部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數(shù)據(jù)組合。
使用python腳本實現(xiàn)查詢火車票信息的效果圖如下:
實現(xiàn)的代碼:
# coding: utf-8 """命令行火車票查看器 Usage: tickets [-gdtkz] Options: -h,--help 顯示幫助菜單 -g 高鐵 -d 動車 -t 特快 -k 快速 -z 直達 Example: tickets 北京 上海 2016-10-10 tickets -dg 成都 南京 2016-10-10 """ import json import requests import prettytable from docopt import docopt from colorama import init, Fore class CollectInfo: def __init__(self): self.qurey_ret = [] self.header = ['車次信息', '發(fā)/到時間', '發(fā)/到站', '歷時', '票價', '余票'] # 獲取車次相關(guān)的所有信息 def query_html_ret(self, query_args): url = 'http://api.12306.com/v1/train/trainInfos?arrStationCode={to_station}&deptDate={date}\ &deptStationCode={source_station}&findGD=false'.format(to_station=query_args['to_station'], source_station=query_args['source_station'], date=query_args['date']) row_ret = requests.get(url) return row_ret.json() # 解析獲取到的結(jié)果 def paser_ret(self, row_ret): trains_info = row_ret['data']['trainInfos'] for info in trains_info: row_info = [] # 獲取車次信息 row_info.append('\n' + info['trainCode']) # 獲取車次到站時間信息 row_info.append('\n' + '\n'.join([Fore.GREEN + info['deptTime']+ Fore.RESET, Fore.RED + info['arrTime']+ Fore.RESET])) # 獲取車次站點名稱 row_info.append('\n' + '\n'.join([Fore.GREEN + info['deptStationName'] + Fore.RESET, Fore.RED + info['arrStationName']+ Fore.RESET])) # 獲取車次到達站點所需時間 row_info.append('\n' + info['runTime']) # 獲取票價以及余票信息 seat_price = [] seat_num = [] for seat in info['seatList']: seat_price.append(seat['seatName'] + ':' + seat['seatPrice']) if int(seat['seatNum']) > 10: ticknum = Fore.GREEN + seat['seatNum'] + Fore.RESET else: ticknum = seat['seatNum'] seat_num.append(ticknum) row_info.append('\n'.join(seat_price)) row_info.append('\n'.join(seat_num)) self.qurey_ret.append(row_info) self.qurey_ret.append([' ', ' ', ' ', ' ', ' ', ' ']) return self.qurey_ret def show_with_table(self): ticket_table = prettytable.PrettyTable() ticket_table.field_names = self.header for row in self.qurey_ret: if len(row) == 0: continue ticket_table.add_row(row) return ticket_table def main(): arguments = docopt(__doc__) query_args = {} init() # 獲取所有站點信息(stations.txt信息通過 函數(shù)獲取) # https: // kyfw.12306.cn / otn / resources / js / framework / station_name.js?station_version = 1.8971 f = open('stations.txt', 'r') info = f.read() stations_info = json.loads(info) # 從所有站點信息中獲取所要查詢站點的代碼信息 query_args['to_station'] = stations_info[arguments['']] query_args['source_station'] = stations_info[arguments['']] query_args['date'] = arguments[''] # 向12306查詢,得到跟車次相關(guān)的所有信息 collect_train = CollectInfo() row_ret = collect_train.query_html_ret(query_args) collect_train.paser_ret(row_ret) table = collect_train.show_with_table() print(table) if __name__ == '__main__': main()
以上是“如何使用python腳本實現(xiàn)查詢火車票工具”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
名稱欄目:如何使用python腳本實現(xiàn)查詢火車票工具-創(chuàng)新互聯(lián)
鏈接地址:http://jinyejixie.com/article20/ghojo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、手機網(wǎng)站建設、網(wǎng)頁設計公司、微信小程序、網(wǎng)站制作、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)