def query_tickes(): r = requests.get(url, verify=False) # 请求网址1的内容 json_data = r.json() json_result = json_data['data']['result'] trains = PrettyTable() trains.field_names = ["车次", "车站", "时间", "历时", "商务座", "一等座", "二等座", "高级软卧", "硬卧 ", "软座 ", "硬座", "无座"] for row in json_result: # 列表循环 cells = row.split("|"); trains.add_row([cells[3], '\n'.join([colored('green', station_v[cells[6]]), colored('red', station_v[cells[7]])]), '\n'.join([colored('green', cells[8]), # 对于双行示的信息,设置颜色 colored('red', cells[9])]), cells[10], # 历时 cells[31], # 商务座 / 特等座 cells[30], # 一等座 cells[29], # 二等座 cells[25], # 高级 / 软卧 cells[27], # 硬卧 / 二等卧 cells[24], # 软座 cells[28], # 硬座 cells[26]]) # 无座 print(trains)
H = price['A2'] #YZ I = ('A1' in price.keys()) if I == False: I = '' else: I = price['A1'] #WZ J = ('WZ' in price.keys()) if J == False: J = '' else: J = price['WZ'] trains.add_row([ row['station_train_code'], '\n'.join([ colored('green', row['from_station_name']), colored('red', row['to_station_name']) ]), '\n'.join([ colored('green', row['start_time']), colored('red', row['arrive_time']) ]), row['lishi'], colored('green', row['swz_num']) + '\n' + A, colored('green', row['tz_num']) + '\n' + B, colored('green', row['zy_num']) + '\n' + C, colored('green', row['ze_num']) + '\n' + D, colored('green', row['gr_num']) + '\n' + E, colored('green', row['rw_num']) + '\n' + F, colored('green', row['yw_num']) + '\n' + G, colored('green', row['rz_num']) + '\n' + H, colored('green', row['yz_num']) + '\n' + I, colored('green', row['wz_num']) + '\n' + J
import requests from pprint import pprint from get_urltrain import url from prettytable import PrettyTable from color_set import colored r = requests.get(url, verify=False) rows = r.json()["data"]["result"] stamap = r.json()["data"]["map"] trains = PrettyTable() trains.field_names = [ "车次", "车站", "时间", "历时", "商务座", "特等座", "一等座", "二等座", "高级软卧", "软卧", "硬卧 ", "软座 ", "硬座", "无座" ] num = len(rows) # 关于票价的信息隐藏的比较深,row = row.split('|'),解析出来。如下,具体对应座位关系没有具体研究。 # '20180419', '3', 'N2', '01', '06', '0', '0', '', '', '', '', '', '', '', '', '', '', # '有', '有', '11', '', 'O0M090', 'OM9', '1' for row in rows: row = row.split('|') trains.add_row([ row[3], '\n'.join( [colored('green', stamap[row[6]]), colored('red', stamap[row[7]])]), '\n'.join([colored('green', row[8]), colored('red', row[9])]), row[10], 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]) print('查询结束,共有 %d 趟列车。' % num) print(trains)
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36' } r = requests.get(url, verify=False, headers=headers) # 请求网址1的内容 rows = r.json()['data']['result'] # 将内容解析为列表 trains = PrettyTable() trains.field_names = [ "车次", "车站", "时间", "历时", "商务座\特等座", "一等座", "二等座", "高级软卧", "软卧", "动卧", "硬卧 ", "软座 ", "硬座", "无座", "其他" ] # 设置table的header num = len(rows) # 打印列表的个数 # station1 = dict([v, k] for k, v in stations.items()) station_list = dict(zip(stations.values(), stations.keys())) for row in rows: # 列表循环 row_list = row.split('|') chair_list = chair_lists(row_list) trains.add_row([ row_list[3], '\n'.join([ colored('green', station_list[row_list[6]]), colored('red', station_list[row_list[7]]) ]), '\n'.join([colored('green', row_list[8]), colored('red', row_list[9])]), row_list[10], ] + chair_list) print('查询结束,共有 %d 趟列车。' % num) # 列表个数也就是列车个数 print(trains)
import urllib from urllib import request import requests from pprint import pprint from get_urltrain import url from prettytable import PrettyTable from color_set import colored r = requests.get(url, verify=False) rows = r.json()['data']['datas'] trains = PrettyTable() trains.field_names = [ "车次", "车站", "时间", "历时", "商务座", "特等座", "一等座", "二等座", "高级软卧", "软卧", "硬卧 ", "软座 ", "硬座", "无座" ] num = len(rows) for row in rows: trains.add_row([ row['station_train_code'], '\n'.join([ colored('green', row['from_station_name']), colored('red', row['to_station_name']) ]), '\n'.join([ colored('green', row['start_time']), colored('red', row['arrive_time']) ]), row['lishi'], row['swz_num'], row['tz_num'], row['zy_num'], row['ze_num'], row['gr_num'], row['rw_num'], row['yw_num'], row['rz_num'], row['yz_num'], row['wz_num'] ]) print('查询结束,共有 %d 趟列车。' % num) print(trains)