首页 > 编程问答 >如何使用 Schiene py lib 取消火车

如何使用 Schiene py lib 取消火车

时间:2024-07-31 16:23:51浏览次数:10  
标签:python

我使用 Python 创建了一个火车项目,但在使用 DB 时间表 API 时遇到了一些问题。是否可以通过 API 请求获取已取消的列车?我不这么认为。此外,火车延误也不包括在内。我使用了一个名为“schiene”的 Python 库来获取火车晚点情况。 “Schiene”与此站点交互: https://mobile.bahn.de/bin/mobil/query.exe/dox? 我确实得到了一些延误信息,但我仍然面临以下问题:

    # TODO: this should not be hardcoded!
    data['canceled'] = False

任何人都可以帮忙解决这个问题吗?

我尝试使用此 res API 从数据库 (RIS::Journeys) 获取已取消的火车,但是你需要为此付费...

所以这是不可能的


说的没错,使用 schiene 库和提供的 DB 时间表 API 无法直接获取已取消的列车信息。这是因为:

  1. schiene 库主要关注列车晚点信息。 它的设计目标是从 DB 的 API 中提取实时的列车运行状况,而并非所有列车取消信息都会实时更新到该 API。
  2. DB 时间表 API 的免费版本不提供列车取消信息。 提到的需要付费的 RIS::Journeys API 才能访问更详细的列车状态数据,包括取消信息。

鉴于这些限制,可以尝试以下方法:

1. 定期检查列车状态变化:

  • 使用 schiene 库定期查询特定列车的状态。
  • 如果列车状态从“晚点”变为“未知”或其他异常状态,则可能暗示列车已被取消。但这并非绝对可靠,因为其他因素也可能导致状态变化。

2. 寻找其他数据源:

  • 可以尝试寻找其他提供免费列车取消信息的 API 或网站。
  • 例如,一些第三方交通信息平台可能会整合 DB 的数据并提供更全面的列车状态信息。

3. 联系 DB API 支持:

  • 可以联系 DB API 支持团队,询问是否有其他方法可以访问列车取消信息,或者是否有计划在未来提供免费的取消信息 API。

代码示例(定期检查状态变化):

import schiene
import time

# 设置要查询的列车信息
train_name = "ICE 1234"
departure_station = "Berlin Hbf"

# 初始化 Schiene API 客户端
s = schiene.Schiene()

while True:
    try:
        # 查询列车状态
        departures = s.departures(
            station=departure_station,
            train_name=train_name,
            lookbehind=0,  # 只查询即将发车的列车
        )

        # 获取第一趟符合条件的列车
        departure = departures[0]

        # 检查列车状态
        if departure.is_cancelled:
            print(f"列车 {train_name} 已取消。")
        elif departure.delay:
            print(f"列车 {train_name} 晚点 {departure.delay} 分钟。")
        else:
            print(f"列车 {train_name} 准点。")

        # 设置查询间隔(例如,每分钟查询一次)
        time.sleep(60)

    except Exception as e:
        print(f"查询列车状态时出错: {e}")
        # 可以根据需要添加错误处理逻辑

请注意: 以上方法并不能保证完全准确地获取所有已取消的列车信息。 为了获得最准确的信息,建议参考 DB 官方网站或应用程序。

标签:python
From: 78815138

相关文章

  • 使用 Python 读取 .xlsx 文件的最快方法
    我正在尝试使用Python将.xlsx文件中的数据读入MySQL数据库。这是我的代码:wb=openpyxl.load_workbook(filename="file",read_only=True)ws=wb['MyWorksheet']conn=MySQLdb.connect()cursor=conn.cursor()cursor.execute("SETautocommit=0"......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-60 - 判断元素是否显示 - 下篇
    1.简介有些页面元素的生命周期如同流星一闪,昙花一现。我们也不知道这个元素在没在页面中出现过,为了捕获这一美好瞬间,让其成为永恒。我们就来判断元素是否显示出现过。在操作元素之前,可以先判断元素的状态。判断元素操作状态也可以用于断言。2.常用的元素判断方法2.1page对象调......
  • 是否有可能在Python中获取客户端计算机的位置
    我想编写一个程序,用python查找客户端计算机的位置。不过,我不介意它的格式如何。我到处尝试过一些东西,但老实说,我对这类事情了解不多,所以我真的不知道从哪里开始。|||我想简单地运行该程序,并将运行该程序的客户端计算机的位置写入控制台。Iwouldliketosimplyrunt......
  • Python:使用 Selenium WebDriver 无法在客户端打开浏览器
    我使用SeleniumWebDriver开发了一个应用程序来打开一些页面。它在本地工作得很好,但我还需要在客户端启动浏览器。我使用Apache2underUbuntu18部署了应用程序。driver=webdriver.Chrome(executable_path="chromedriver",chrome_options=ch......
  • Python:使用默认模块在python中读取excel
    我有Python2.6.6版本,但无法安装pandas、xlrd、xlwt等新模块。我想使用Python读取Excel。是否可以使用Python中存在的默认模块读取Excel。抱歉,不能使用Python2.6.6的默认模块读取Excel文件。Python没有内置的功能来处理Excel文件。使用外部库(如提......
  • 【Python】从0开始写脚本、Selenium详细教程、附源码案例(保姆篇)
    文章目录准备工作安装selenium配置浏览器驱动脚本测试什么是Selenium?Selenium功能示例(可直接拷贝执行)编写一个简单的Python脚本来使用Selenium打开一个网页,并获取网页的标题下面是一个示例,自动打开csdn并进行搜索Selenium使用Selenium元素定位文本输入、清除与提交......
  • Python控制台输出的华丽变身:色彩与风格的深度探索
    一、文章摘要本文深入探讨了Python标准输出中字体颜色的设置方法,特别是通过ANSI转义序列实现的文本样式控制。文章详细解析了ANSI转义序列的组成、各个颜色代码的含义,以及如何在Python中使用这些代码来改变终端输出的字体颜色、背景色、高光、加粗等样式。通过丰富的案例代码,......
  • 二十五、【机器学习】-【Python手搓3层神经网络】:从零构建深度学习模型的实战指南
    目录一、序章:为什么你需要掌握手搓神经网络二、基础篇:神经网络基础知识回顾三、实战配置:搭建3层神经网络的步骤与技巧(一)、__init__ 方法初始化神经网络(二)、train 方法实现了前向传播和反向传播(三)、query 方法(四)、全部代码四、总结一、序章:为什么你需要掌握手......
  • 在Python中将简单的字典导出到Excel文件中
    我是Python新手。我有一个简单的字典,其键和值如下dict1={"numberofstoragearrays":45,"numberofports":2390,......}我需要将它们放入Excel表中,如下numberofstoragearrays45numberofports2390我有一个非常大的字典。importpandasasp......
  • 将 python 脚本作为 AWS 胶水服务作业运行
    我有一个使用本地路径在本地运行的python脚本,但我需要复制此python脚本并将其作为AWS胶水服务作业运行并将输出保存在s3存储桶中。请帮助我逐步说明。将Python脚本作为AWSGlue作业运行的步骤如下:步骤1:修改的Python脚本以使其与Glue兼容......