亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用python腳本實現查詢火車票工具

發布時間:2021-04-25 10:29:43 來源:億速云 閱讀:361 作者:小新 欄目:開發技術

這篇文章主要介紹如何使用python腳本實現查詢火車票工具,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

python的數據類型有哪些?

python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。

使用python腳本實現查詢火車票信息的效果圖如下:

如何使用python腳本實現查詢火車票工具

實現的代碼:

# 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 = ['車次信息', '發/到時間', '發/到站', '歷時', '票價', '余票']
 # 獲取車次相關的所有信息
 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()
 # 解析獲取到的結果
 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信息通過 函數獲取)
 # 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查詢,得到跟車次相關的所有信息
 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腳本實現查詢火車票工具”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

交口县| 疏勒县| 苍南县| 九寨沟县| 托里县| 北京市| 峨边| 鲁甸县| 通山县| 钟祥市| 汾西县| 新营市| 远安县| 德惠市| 屯昌县| 吉安县| 宣威市| 盱眙县| 湘潭市| 夏河县| 靖宇县| 九龙坡区| 白河县| 大宁县| 乐陵市| 湖北省| 成都市| 台山市| 揭东县| 遂宁市| 九寨沟县| 临沭县| 民县| 莱州市| 庆元县| 黔西| 类乌齐县| 化州市| 天镇县| 陕西省| 孝昌县|