使用python指令碼實現查詢火車票工具

2022-09-28 06:06:12 字數 3267 閱讀 8032

使用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:

depuioetzcf __init__(self):

self.qurey_ret =

self.header = ['車次資訊', '發/到時間', '發/到站', '歷時', '票價', '餘票']

# 獲取車次相關的所有資訊

def query_html_ret(self, query_args):

url = '

&deptstationcode=&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:

tic = 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

fwww.cppcns.comor 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資訊通過 函式獲取)

# 從所有站點資訊中獲取所要查詢站點的**資訊

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指令碼實現查詢火車票工具

本文位址:

使用python實現查詢list中相同的字元

最近和小夥伴想實現從給定列表中識別出來相同的元素,現分享出來,有需要的小夥伴可以 一下,指點一下,具體如下 一 思路 1.按照list中第一元素的順序,進行遍歷每乙個字元 使用for迴圈 2.基於1找出要對比的元素,在給定列表中每個元素是否包含要對比的元素 是否for迴圈遍歷每個列表元素 對比的方案...

mapx實現查詢

1 屬性查詢。find search方法 注意的是find方法只支援tab表檔案,不支援空間資料 表。find 與foxpro中locate定位命令想類似。search 支援sql語句。寫法 僅指sql語句的where 部分,且from語句中只能有乙個表 僅對單錶進行操作 select from l...

shell中使用SQL實現查詢

先把文字進行格式處理,然後以空格為分隔符,取第二個空格後的字串,排序,去重,再降序排列,取前5個 arr cat 0100055f detail.txt sed e d awk f sort uniq c sort nr head 5 awk len 獲取陣列長度 for i 0 i len i d...