火车站的信息显示系统_列车到站播报

火车站的信息显示系统_列车到站播报《火车站信息显示》

大家好,又见面了,我是你们的朋友全栈君。

#conding=utf-8

#火车站信息显示

import requests

#xls 文件读取 火车站代码导入
import xlrd
import os
#表格显示信息
from prettytable import PrettyTable

#打开文件
workbook = xlrd.open_workbook(r'D:\untitled\hc.xls')
#读取第一个页面
sheet = workbook.sheet_by_name(workbook.sheet_names()[0])


#写入数组
listdd=[]
for i in range(1,sheet.nrows):
    dd=sheet.row_values(i)
    dds=dd[0].split('|')
    ddds=[dds[2],dds[3]]
    listdd.append(ddds)

os.system('cls')
word = input('始发站:')
word2 = input('到达站:')
shij=input('日期2018-11-02格式:')
print('正在查询...')
#转换对应火车站代码
for i in range(len(listdd)):
    global wordd
    if word == listdd[i][0]:
        wordd = listdd[i][1]

for i in range(len(listdd)):
    global wordd2
    if word2 == listdd[i][0]:
        wordd2 = listdd[i][1]

#头信息
header={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}

#替换火车站 日期
url='https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date='+shij+'&leftTicketDTO.from_station='+wordd+'&leftTicketDTO.to_station='+wordd2+'&purpose_codes=ADULT'
response=requests.get(url,headers=header)
response.encoding=response.apparent_encoding
#接收数据
pp=response.json()
idd=pp['data']['map']
pp=pp['data']['result']

lists=[]
#表头
biaotou=[' 车次 ','出发站 ','到达站 ','开始时间','到达时间',' 历时 ','商务座 ','一等座 ','二等座 ','高级软卧',' 软卧 ',' 硬卧 ',' 软座 ',' 硬座 ',' 无座 ']
aa=PrettyTable(biaotou)
for i in pp:
    list=[]
    list=i.split('|')
    lists.append(list)
for d in lists:
    kk=[]
    for i in idd.keys():
        if d[6]==i:
            d[6] = idd[i]
        elif d[7]==i:
            d[7] = idd[i]
    kk = [d[3], d[6], d[7], d[8], d[9], d[10], d[32], d[31], d[30], d[21], d[23], d[28], d[24], d[29], d[26]]
    for k in range(15):
        if kk[k]=='':
            kk[k]='--'
    aa.add_row(kk)
    
    
print('查询结束,共有{0}趟列车。'.format(len(lists)))

print(aa)



'''
车次 3:K7727
出发站 6:BXP
到达站 7:TJP
开始时间 8:00:42
到达时间 9:02:33
历时 10:01:51
商务座 32:5
特等座 
一等座 31:14
二等座 30:有
高级软卧 21:4
软卧 23:6
硬卧 28:有
软座 24:有
硬座 29:有
无座 26:无'''

 

转载于:https://www.cnblogs.com/huazhou695/p/9882854.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107222.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 每日英语:Adding Good Taste To A Tasty, Luxury Gift

    每日英语:Adding Good Taste To A Tasty, Luxury Gift

    2021年8月21日
  • Heartbeat_塞尔比欧冠夺冠

    Heartbeat_塞尔比欧冠夺冠Heartbeat介绍一、Heartbeat作用通过它可以将资源(IP及程序服务等资源)从一台故障计算机快速转移到另一台运转正常的机器继续提供服务,在实际生产应用场景中,heartbeat的功能和另一个高可用开源软件keepalived有很多相同之处。二、Heartbeat工作原理通过修改配置文件,指定哪一台Heartbeat服务器作为主服务器,则另一台将自动成为备份服务器。然后在指定备

    2022年11月2日
  • 禁止validateRequest的办法

    禁止validateRequest的办法A  potentially  dangerous  Request.Form  value  was  detected  from  the  client  (txtTest=””).  由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错。  解决方案一:    在.aspx文件头中加入这句:        解决方案二:    修

    2022年5月6日
  • Spring AOP中动态代理的两种实现方式及其过程_spring动态代理原理

    Spring AOP中动态代理的两种实现方式及其过程_spring动态代理原理什么是代理?指为一个目标对象提供一个代理对象,并由代理对象控制对目标对象的引用.使用代理对象,是为了在不修改目标对象的基础上,增强目标对象的业务逻辑.静态代理静态代理的特点是,为每一个业务增强都提供一个代理类,由代理类来创建代理对象.下面我们通过静态代理来实现对转账业务进行身份验证.(1)转账业务publicinterfaceIAccountService{…

    2022年8月11日
  • C语言基础知识入门(大全)「建议收藏」

    C语言基础知识入门(大全)「建议收藏」一.C语言入门C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课!更多详细进阶教程等你领取!可以关注公众号“C和C加加”回复“ZXC”即可免费获取!二.C语言的具体结构简单来说,一个C程序就是由若干头文件和函数组成。 #include<stdio.h>就是一条预处理命..

    2022年6月7日
  • 眼下流行的几种排课算法的介绍

    眼下流行的几种排课算法的介绍通用高校排课算法研究—-2.眼下流行的几种排课算法的介绍2眼下流行的几种排课算法的介绍2.1.自己主动排课算法1.问题的描写叙述我们讨论的自己主动排课问题的简化描写叙述例如以下:设要安排

    2022年7月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号