Ein Einblick in das „DB Timetable API“ PyPi-Paket

Als Entwickler und Bahnenthusiast habe ich stets nach Möglichkeiten gesucht, einfach und effizient auf die Fahrplandaten der Deutschen Bahn zuzugreifen. Dies führte zur Entwicklung des „DB Timetable API“ PyPi-Pakets. In diesem Blogbeitrag möchte ich Euch mein Paket vorstellen. Für alle Code-Interessierten: Der vollständige Code meines Projekts ist auf Github für jeden zugänglich und einsehbar.

Installation

Die Installation meines Pakets ist kinderleicht. Für Windows:

  pip install db-timetable-api

Und für Unix:

  pip3 install db-timetable-api

Nach der Installation könnt Ihr direkt loslegen und das Paket in Euren Projekten nutzen.

Anwendung und Beispiele

Nach der Installation ist es wichtig, das Paket in Euer Projekt zu importieren und den API-Schlüssel anzugeben. Für den Fall, dass Ihr noch keinen API-Schlüssel besitzt müsst ihr euch auf developers.deutschebahn.com registrieren. Nach der Registrierung erstellt Ihr eine Anwendung und meldet Euch für die kostenlose Timetables API an.

Startet mit dem Import des Packages und der Definierung der Klasse inklusive der API-Keys

from db_timetable_api import timetable

db = timetable.timetable_api(clientid=<EURE_CLIENT_ID>, clientsecret=<EURE_CLIENT_SECRET>)

Informationen über die Station abrufen

Mit Hilfe dieser Funktion könnt ihr leicht Informationen zu einer beliebigen Station erhalten:

db.get_station("Berlin Hbf")

Unter anderem erhaltet ihr hier die EVA-ID eines Bahnhofes, welche für spätere API Anfragen wichtig wird.

Zeitplan für eine bestimmte Stunde abrufen

Gebt zum Abrufen des Soll-Fahrplans einfach die EVA-ID, das Datum und die Uhrzeit ein:

db.get_timetable("8011160", "2023-10-31", "12")

Hiermit erhaltet Ihr alle geplanten An- und Abfahrten für die angegebene Stunde am angegebenen Bahnhof

Änderungen für eine Station abrufen

Verspätungen und Gleisänderungen kommen vor. Daher sollte man auch diese leicht abrufen können. Mit get_changes seht Ihr alle Änderungen für eine Station:

db.get_changes("8011160")

Und wer nur die neuesten Fahrplanänderungen checken möchte, kann die get_recent_changes-Methode nutzen:

db.get_recent_changes("8011160")

Weitere Dokumentation und den Quellcode von dem Projekt findet ihr natürlich auf Github

Nach oben scrollen