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