最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python腳本實現(xiàn)查詢火車票工具

 更新時間:2018年07月19日 16:39:39   作者:白天不懂夜的黑i  
這篇文章主要介紹了使用python腳本實現(xiàn)查詢火車票工具,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

使用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()

總結(jié)

以上所述是小編給大家介紹的使用python腳本查詢火車票工具,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • numpy 中l(wèi)inspace函數(shù)的使用

    numpy 中l(wèi)inspace函數(shù)的使用

    本文主要介紹了numpy 中l(wèi)inspace函數(shù)的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用

    Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用

    csv文件是一種逗號分隔的純文本形式存儲的表格數(shù)據(jù),Python內(nèi)置了CSV模塊,可直接通過該模塊實現(xiàn)csv文件的讀寫操作,下面這篇文章主要給大家介紹了關(guān)于Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用,需要的朋友可以參考下
    2022-09-09
  • python繪制超炫酷動態(tài)Julia集示例

    python繪制超炫酷動態(tài)Julia集示例

    大家好,本篇文章主要講的是python繪制超炫酷動態(tài)Julia集示例,感興趣的痛學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • PyCharm安裝庫numpy失敗問題的詳細解決方法

    PyCharm安裝庫numpy失敗問題的詳細解決方法

    今天使用pycharm編譯python程序時,由于要調(diào)用numpy包,但又未曾安裝numpy,于是就根據(jù)pycharm的提示進行安裝,最后竟然提示出錯,下面這篇文章主要給大家介紹了關(guān)于PyCharm安裝庫numpy失敗問題的詳細解決方法,需要的朋友可以參考下
    2022-06-06
  • Python ellipsis 的用法詳解

    Python ellipsis 的用法詳解

    這篇文章主要介紹了Python ellipsis 的用法詳解,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • Python中導(dǎo)入模塊的幾種方式總結(jié)

    Python中導(dǎo)入模塊的幾種方式總結(jié)

    模塊就是用一堆的代碼實現(xiàn)了一些功能的代碼的集合,通常一個或者多個函數(shù)寫在一個.py文件里,下面這篇文章主要給大家介紹了關(guān)于Python中導(dǎo)入模塊的幾種方式,需要的朋友可以參考下
    2022-12-12
  • python-itchat 統(tǒng)計微信群、好友數(shù)量,及原始消息數(shù)據(jù)的實例

    python-itchat 統(tǒng)計微信群、好友數(shù)量,及原始消息數(shù)據(jù)的實例

    今天小編就為大家分享一篇python-itchat 統(tǒng)計微信群、好友數(shù)量,及原始消息數(shù)據(jù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python中的localtime()方法使用詳解

    Python中的localtime()方法使用詳解

    這篇文章主要介紹了Python中的localtime()方法使用詳解,是Python入門學(xué)習(xí)的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • conda虛擬環(huán)境中查看包的位置的四種方法

    conda虛擬環(huán)境中查看包的位置的四種方法

    本文主要介紹了conda虛擬環(huán)境中查看包的位置的四種方法,包括使用Conda命令、在Python中查看、使用pip命令以及檢查環(huán)境目錄結(jié)構(gòu),具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • django-crontab實現(xiàn)服務(wù)端的定時任務(wù)的示例代碼

    django-crontab實現(xiàn)服務(wù)端的定時任務(wù)的示例代碼

    這篇文章主要介紹了django-crontab實現(xiàn)服務(wù)端的定時任務(wù)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評論

湖北省| 宽甸| 梧州市| 松溪县| 买车| 隆安县| 丹凤县| 安泽县| 洛宁县| 岗巴县| 花莲市| 钦州市| 昌平区| 巴彦淖尔市| 华蓥市| 育儿| 永寿县| 友谊县| 梅州市| 博乐市| 深水埗区| 沂南县| 阿鲁科尔沁旗| 利川市| 江陵县| 武宣县| 平武县| 鄢陵县| 汾阳市| 璧山县| 蓬莱市| 吉安县| 抚松县| 三都| 读书| 尼木县| 田林县| 铅山县| 时尚| 冷水江市| 砀山县|