十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍如何使用python脚本实现查询火车票工具,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
站在用户的角度思考问题,与客户深入沟通,找到左权网站设计与左权网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、雅安服务器托管、企业邮箱。业务覆盖左权地区。python的数据类型有哪些?python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮点型)。2.字符串,分别是str类型和unicode类型。3.布尔型,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。4.列表,列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型。5. 元组,元组用”()”标识,内部元素用逗号隔开。6. 字典,字典是一种键值对的集合。7. 集合,集合是一个无序的、不重复的数据组合。
使用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: def __init__(self): self.qurey_ret = [] self.header = ['车次信息', '发/到时间', '发/到站', '历时', '票价', '余票'] # 获取车次相关的所有信息 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() # 解析获取到的结果 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信息通过 函数获取) # 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查询,得到跟车次相关的所有信息 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脚本实现查询火车票工具”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!