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

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

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

使用python腳本實(shí)現(xiàn)查詢火車(chē)票信息的效果圖如下:

實(shí)現(xiàn)的代碼:

# coding: utf-8
"""命令行火車(chē)票查看器
Usage:
 tickets [-gdtkz] 
Options:
 -h,--help 顯示幫助菜單
 -g   高鐵
 -d   動(dòng)車(chē)
 -t   特快
 -k   快速
 -z   直達(dá)
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 = ['車(chē)次信息', '發(fā)/到時(shí)間', '發(fā)/到站', '歷時(shí)', '票價(jià)', '余票']
 # 獲取車(chē)次相關(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 = []
   # 獲取車(chē)次信息
   row_info.append('\n' + info['trainCode'])
   # 獲取車(chē)次到站時(shí)間信息
   row_info.append('\n' + '\n'.join([Fore.GREEN + info['deptTime']+ Fore.RESET,
            Fore.RED + info['arrTime']+ Fore.RESET]))
   # 獲取車(chē)次站點(diǎn)名稱(chēng)
   row_info.append('\n' + '\n'.join([Fore.GREEN + info['deptStationName'] + Fore.RESET,
            Fore.RED + info['arrStationName']+ Fore.RESET]))
   # 獲取車(chē)次到達(dá)站點(diǎn)所需時(shí)間
   row_info.append('\n' + info['runTime'])
   # 獲取票價(jià)以及余票信息
   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()
 # 獲取所有站點(diǎn)信息(stations.txt信息通過(guò) 函數(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)
 # 從所有站點(diǎn)信息中獲取所要查詢站點(diǎn)的代碼信息
 query_args['to_station'] = stations_info[arguments['']]
 query_args['source_station'] = stations_info[arguments['']]
 query_args['date'] = arguments['']
 # 向12306查詢,得到跟車(chē)次相關(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腳本查詢火車(chē)票工具,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

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

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

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

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

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

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

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

    PyCharm安裝庫(kù)numpy失敗問(wèn)題的詳細(xì)解決方法

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

    Python ellipsis 的用法詳解

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

衡阳市| 大埔县| 乐昌市| 和顺县| 镇江市| 射洪县| 石台县| 收藏| 大化| 台江县| 顺义区| 安义县| 石棉县| 海原县| 横山县| 柏乡县| 肇州县| 宁波市| 玉溪市| 隆林| 博湖县| 榆树市| 双鸭山市| 陆丰市| 增城市| 嘉鱼县| 利川市| 资源县| 乳山市| 明光市| 永修县| 灵石县| 麦盖提县| 和林格尔县| 丰都县| 海南省| 汝州市| 青岛市| 和龙市| 多伦县| 安乡县|