2A.eco - Exercice API SNCF corrigé#
Links: notebook
, html, python
, slides, GitHub
Manipulation d’une API REST, celle de la SNCF est prise comme exemple. Correction d’exercices.
from jyquickhelper import add_notebook_menu
add_notebook_menu()
Partie 0 - modules recommandés et connexion à l’API#
Il vous faudra sûrement les modules suivant :
requests
datetime
pandas
matplotlib
Créer un login pour vous connecter à l’API de la SNCF https://data.sncf.com/api
Vous pouvez maintenant commencer. Ce notebook peut prendre du temps à s’éxécuter, surout à partir de la partie 3
# !!!!! Attention à bien mettre votre token ici !!!!!
token_auth = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
import os
from pyquickhelper.loghelper import get_password
if "XXXXXX" in token_auth:
token_auth = get_password("sncf", "ensae_teaching_cs,key")
Partie 1 - Trouver les gares accessibles via la SNCF#
Trouver l’ensemble des gares disponibles sur l’API et créer un fichier csv avec les codes de la gare, son nom et ses coordonnées latitude et longitude, ainsi que les informations administratives de la région quand elles sont disponibles
Représentez les sur un graphique
import pandas as pd
import requests
def page_gares(numero_page) :
return requests.get(
('https://api.sncf.com/v1/coverage/sncf/stop_areas?start_page={}').format(numero_page),
auth=(token_auth, ''))
######################################
# on commence par la première page qui nous donne le nombre de résultats par page ainsi que le nombre total de résultats
page_initiale = page_gares(0)
item_per_page = page_initiale.json()['pagination']['items_per_page']
total_items = page_initiale.json()['pagination']['total_result']
dfs = []
# on fait une boucle sur toutes les pages suivantes
print_done = {}
for page in range(int(total_items/item_per_page)+1) :
stations_page = page_gares(page)
ensemble_stations = stations_page.json()
if 'stop_areas' not in ensemble_stations:
# pas d'arrêt
continue
# on ne retient que les informations qui nous intéressent
for station in ensemble_stations['stop_areas']:
station['lat'] = station['coord']['lat']
station["lon"] = station['coord']['lon']
if 'administrative_regions' in station.keys() :
for var_api, var_df in zip(['insee','name','label','id','zip_code'],
['insee','region','label_region','id_region','zip_code']):
try:
station[var_df] = station['administrative_regions'][0][var_api]
except KeyError:
if var_api not in print_done:
print("key '{0}' not here but {1}".format(var_api,
",".join(station['administrative_regions'][0].keys())))
print_done[var_api] = var_api
[station.pop(k,None) for k in ['coord','links','administrative_regions', 'type', 'codes']]
stations = ensemble_stations['stop_areas']
try:
dp = pd.DataFrame(stations)
except Exception as e:
# La SNCF modifie parfois le schéma de ses données.
# On affiche station pour avoir une meilleure idée que l'erreur retournée par pandas
raise Exception("Problème de données\n{0}".format(stations)) from e
dfs.append(dp)
if page % 10 == 0:
print("je suis à la page", page, "---", dp.shape)
import pandas
df = pandas.concat(dfs)
df.to_csv("./ensemble_gares.csv")
print(df.shape)
df.head()
je suis à la page 0 --- (25, 11)
je suis à la page 10 --- (25, 11)
je suis à la page 20 --- (25, 11)
je suis à la page 30 --- (25, 11)
je suis à la page 40 --- (25, 11)
je suis à la page 50 --- (25, 11)
je suis à la page 60 --- (25, 11)
je suis à la page 70 --- (25, 11)
je suis à la page 80 --- (25, 11)
je suis à la page 90 --- (25, 11)
je suis à la page 100 --- (25, 11)
je suis à la page 110 --- (25, 11)
je suis à la page 120 --- (25, 11)
je suis à la page 130 --- (25, 11)
je suis à la page 140 --- (25, 11)
je suis à la page 150 --- (25, 11)
je suis à la page 160 --- (25, 11)
je suis à la page 170 --- (25, 11)
je suis à la page 180 --- (25, 11)
je suis à la page 190 --- (25, 11)
(4920, 11)
name | label | timezone | id | lat | lon | insee | region | label_region | id_region | zip_code | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | Europe/Paris | stop_area:SNCF:87407536 | 0 | 0 | NaN | NaN | NaN | NaN | NaN | ||
1 | Abancourt | Abancourt (Abancourt) | Europe/Paris | stop_area:SNCF:87313759 | 49.685621 | 1.774297 | 60001 | Abancourt | Abancourt (60220) | admin:fr:60001 | 60220 |
2 | Abbaretz | Abbaretz (Abbaretz) | Europe/Paris | stop_area:SNCF:87481614 | 47.555241 | -1.524289 | 44001 | Abbaretz | Abbaretz (44170) | admin:fr:44001 | 44170 |
3 | Abbeville | Abbeville (Abbeville) | Europe/Paris | stop_area:SNCF:87317362 | 50.102175 | 1.824538 | 80001 | Abbeville | Abbeville (80100) | admin:fr:80001 | 80100 |
4 | Ablon | Ablon (Ablon-sur-Seine) | Europe/Paris | stop_area:SNCF:87545269 | 48.725443 | 2.419213 | 94001 | Ablon-sur-Seine | Ablon-sur-Seine (94480) | admin:fr:94001 | 94480 |
df[df.name.str.contains('Lyon')]
name | label | timezone | id | lat | lon | insee | region | label_region | id_region | zip_code | |
---|---|---|---|---|---|---|---|---|---|---|---|
19 | Gare De Lyon Noctilien | Gare De Lyon Noctilien (Paris) | Europe/Paris | stop_area:SNCF:87588202 | 48.84578 | 2.373719 | 75056 | Paris | Paris (75000-75116) | admin:fr:75056 | 75000;75116 |
2 | Lyon Gorge de Loup | Lyon Gorge de Loup (Lyon) | Europe/Paris | stop_area:SNCF:87721175 | 45.766095 | 4.804697 | 69123 | Lyon | Lyon | admin:fr:69123 | |
3 | Lyon Jean Macé | Lyon Jean Macé (Lyon) | Europe/Paris | stop_area:SNCF:87282624 | 45.74503 | 4.841499 | 69123 | Lyon | Lyon | admin:fr:69123 | |
4 | Lyon Part Dieu | Lyon Part Dieu (Lyon) | Europe/Paris | stop_area:SNCF:87723197 | 45.760596 | 4.859409 | 69123 | Lyon | Lyon | admin:fr:69123 | |
5 | Lyon Perrache | Lyon Perrache (Lyon) | Europe/Paris | stop_area:SNCF:87722025 | 45.748508 | 4.825777 | 69123 | Lyon | Lyon | admin:fr:69123 | |
6 | Lyon Saint-Exupéry TGV | Lyon Saint-Exupéry TGV (Colombier-Saugnieu) | Europe/Paris | stop_area:SNCF:87762906 | 45.721109 | 5.074969 | 69299 | Colombier-Saugnieu | Colombier-Saugnieu (69124-69125) | admin:fr:69299 | 69124;69125 |
7 | Lyon Saint-Paul | Lyon Saint-Paul (Lyon) | Europe/Paris | stop_area:SNCF:87721159 | 45.766077 | 4.826954 | 69123 | Lyon | Lyon | admin:fr:69123 | |
8 | Lyon Vaise | Lyon Vaise (Lyon) | Europe/Paris | stop_area:SNCF:87721001 | 45.77976 | 4.804186 | 69123 | Lyon | Lyon | admin:fr:69123 | |
9 | Lyon-Part-Dieu Gare Routière | Lyon-Part-Dieu Gare Routière (Lyon) | Europe/Paris | stop_area:SNCF:87697128 | 45.761064 | 4.862984 | 69123 | Lyon | Lyon | admin:fr:69123 | |
10 | Lyon-Perrache Gare Routière | Lyon-Perrache Gare Routière (Lyon) | Europe/Paris | stop_area:SNCF:87697136 | 45.74912 | 4.827332 | 69123 | Lyon | Lyon | admin:fr:69123 | |
11 | Lyon-Saint-Paul La Feuillée | Lyon-Saint-Paul La Feuillée (Lyon) | Europe/Paris | stop_area:SNCF:87698340 | 45.765943 | 4.827477 | 69123 | Lyon | Lyon | admin:fr:69123 | |
12 | Lyon-Saint-Paul Quai de Bondy | Lyon-Saint-Paul Quai de Bondy (Lyon) | Europe/Paris | stop_area:SNCF:87698332 | 45.766595 | 4.828287 | 69123 | Lyon | Lyon | admin:fr:69123 | |
13 | Lyon-Vaise-Gare-Routière | Lyon-Vaise-Gare-Routière (Lyon) | Europe/Paris | stop_area:SNCF:87697045 | 45.779611 | 4.803685 | 69123 | Lyon | Lyon | admin:fr:69123 | |
3 | Paris Gare de Lyon Hall 1 &2 | Paris Gare de Lyon Hall 1 &2 (Paris) | Europe/Paris | stop_area:SNCF:87686006 | 48.844945 | 2.373481 | 75056 | Paris | Paris (75000-75116) | admin:fr:75056 | 75000;75116 |
8 | Urcay Hôtel du Lyon d'Or | Urcay Hôtel du Lyon d'Or (Urçay) | Europe/Paris | stop_area:SNCF:87409490 | 46.626834 | 2.589442 | 03293 | Urçay | Urçay (03360) | admin:fr:03293 | 03360 |
df = pd.read_csv("./ensemble_gares.csv", encoding = "ISO-8859-1")
print(df.columns)
print(df.shape)
# Exemple des informations sur une gare
df.iloc[317]
Index(['Unnamed: 0', 'name', 'label', 'timezone', 'id', 'lat', 'lon', 'insee',
'region', 'label_region', 'id_region', 'zip_code'],
dtype='object')
(4920, 12)
Unnamed: 0 17
name Bandol
label Bandol (Bandol)
timezone Europe/Paris
id stop_area:SNCF:87755223
lat 43.140385
lon 5.750128
insee 83009.0
region Bandol
label_region Bandol (83150)
id_region admin:fr:83009
zip_code 83150
Name: 317, dtype: object
# on crée un dictionnaire des correspondances entre les noms et les codes des gares
dict_label_gare_code = df[['label','id']].set_index('label').to_dict()['id']
dict_nom_gare_code = df[['name','id']].set_index('name').to_dict()['id']
print(df.columns)
# graphique dans le plan des gares
%matplotlib inline
import matplotlib.pyplot as plt
lng_var = df[(df['lat']>35) & (df['lat']<60)]["lon"].tolist()
lat_var = df[(df['lat']>35) & (df['lat']<60)]["lat"].tolist()
plt.scatter(x = lng_var , y = lat_var,marker = "o");
Index(['Unnamed: 0', 'name', 'label', 'timezone', 'id', 'lat', 'lon', 'insee',
'region', 'label_region', 'id_region', 'zip_code'],
dtype='object')

Les trajets depuis la Gare de Lyon#
Partons à Lyon#
Imaginez que vous vouliez un peu voyager hors de Paris, et il se trouve que justement on vous propose de passer quelques jours à Lyon. Vous partez le 17 novembre vers 19h50 pour ne pas trop écourter votre journée de travail (documentation de l’API).
Question 1#
Commencez par récupérer les informations sur le trajet entre Paris Gare de Lyon et Lyon Perrache le 17 novembre à 19h57
Paris - Gare de Lyon (code de la gare : stop_area:SNCF:87686006)
Lyon - Gare Lyon Perrache (code de la gare : stop_area:SNCF:87722025)
Indice : utiliser la requête “journeys”
Autre indice : le format de la date est AAAAMMJJTHHMMSS (Année, mois, jour, heure, minutes, secondes)
Répondez aux questions suivantes
combien y a-t-il d’arrêts entre ces deux gares ? (utilisez la clé ‘journeys’)
combien de temps d’arrêt à chacune d’elles ?
Tout d’abord une fonction qui sera utile pour calculer des temps :
from datetime import datetime, timedelta
def convertir_en_temps(chaine) :
''' on convertit en date la chaine de caractères de l API'''
return datetime.strptime(chaine.replace('T',''),'%Y%m%d%H%M%S')
Et l’inverse :
def convertir_en_chaine(dt) :
''' on convertit en chaîne de caractères un datetime'''
return datetime.strftime(dt, '%Y%m%dT%H%M%S')
now = datetime.now()
convertir_en_chaine(now)
'20221207T110203'
convertir_en_temps(convertir_en_chaine(now))
datetime.datetime(2022, 12, 7, 11, 2, 3)
# informations sur le trajet qu'on choisit dans le futur
# l'API ne retourne pas de résultatq très loin dans le passé
now = datetime.now()
dt = now + timedelta(14) # dans deux semaines
date_depart = convertir_en_chaine(dt)
gare_depart = 'stop_area:SNCF:87686006'
gare_arrivee = 'stop_area:SNCF:87722025'
date_depart
'20221221T112354'
Ensemble des départs :
paris_lyon = requests.get(
('https://api.sncf.com/v1/coverage/sncf/journeys?'
'from={}&to={}&datetime={}').format(gare_depart, gare_arrivee, date_depart),
auth=(token_auth, '')).json()
Les gares du chemin entre Paris et Lyon sur ce trajet ainsi que le temps d’arrêt :
session = paris_lyon['journeys'][0]['sections'][1]
rows = []
if "stop_date_times" in session:
for i in session['stop_date_times']:
rows.append(dict(name=i['stop_point']['name'],
depart=convertir_en_temps(i['departure_date_time']),
arrivee=convertir_en_temps(i['arrival_date_time'])))
pandas.DataFrame(rows)
# debug
name | depart | arrivee | |
---|---|---|---|
0 | Paris Gare de Lyon Hall 1 &2 | 2022-12-21 11:48:00 | 2022-12-21 11:48:00 |
1 | Le Creusot-TGV | 2022-12-21 13:17:00 | 2022-12-21 13:14:00 |
2 | Lyon Part Dieu | 2022-12-21 14:02:00 | 2022-12-21 13:56:00 |
3 | Lyon Perrache | 2022-12-21 14:10:00 | 2022-12-21 14:10:00 |
Question 2#
Vous êtes un peu pressé et vous avez peur de vous tromper en arrivant à la gare car d’autres TGV partent à peu près en même temps (à partir de 19h00) de la gare de Lyon. Si vous demandez à l’API, combien de résultats vous donne-t-elle ?
Soit l’API a changé, soit…
requests.get(
('https://api.sncf.com/v1/coverage/sncf/stop_areas/'
'stop_area:SNCF:87686006/departures'), auth=(token_auth, '')).json()
{'pagination': {'start_page': 0,
'items_on_page': 10,
'items_per_page': 10,
'total_result': 10},
'links': [{'href': 'https://api.sncf.com/v1/coverage/sncf/stop_points/{stop_point.id}',
'type': 'stop_point',
'rel': 'stop_points',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/commercial_modes/{commercial_modes.id}',
'type': 'commercial_modes',
'rel': 'commercial_modes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/stop_areas/{stop_area.id}',
'type': 'stop_area',
'rel': 'stop_areas',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/physical_modes/{physical_modes.id}',
'type': 'physical_modes',
'rel': 'physical_modes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/routes/{route.id}',
'type': 'route',
'rel': 'routes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/commercial_modes/{commercial_mode.id}',
'type': 'commercial_mode',
'rel': 'commercial_modes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/vehicle_journeys/{vehicle_journey.id}',
'type': 'vehicle_journey',
'rel': 'vehicle_journeys',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/lines/{line.id}',
'type': 'line',
'rel': 'lines',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/physical_modes/{physical_mode.id}',
'type': 'physical_mode',
'rel': 'physical_modes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/networks/{network.id}',
'type': 'network',
'rel': 'networks',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/stop_areas/stop_area:SNCF:87686006/departures',
'type': 'first',
'templated': False}],
'disruptions': [],
'notes': [],
'feed_publishers': [{'url': '',
'id': 'sncf',
'license': 'Private (unspecified)',
'name': 'SNCF PIV Production'},
{'url': '',
'id': 'SNCF:sncf-piv',
'license': 'Private (unspecified)',
'name': 'SNCF PIV Production'}],
'departures': [{'display_informations': {'direction': 'Marne-la-Val-Chessy-RER (Chessy)',
'code': 'A',
'network': 'RER',
'links': [],
'color': 'D1302F',
'name': 'A',
'physical_mode': 'RER / Transilien',
'headsign': 'QIWI',
'label': 'A',
'equipments': [],
'text_color': 'FFFFFF',
'trip_short_name': 'QIWI64',
'commercial_mode': 'RER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TNRER',
'name': 'RER'}],
'name': 'Paris-Gare-de-Lyon RER',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 7.28, 'unit': 'gEC/Km'},
'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'coord': {'lat': '48.843811', 'lon': '2.374082'},
'label': 'Paris-Gare-de-Lyon RER (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87758581:RapidTransit',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87758201'},
{'type': 'uic', 'value': '87758201'}],
'name': 'Boissy-Saint-Léger',
'links': [],
'coord': {'lat': '48.753076', 'lon': '2.505344'},
'label': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87758201'},
'quality': 0,
'name': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'id': 'stop_area:SNCF:87758201'},
'name': 'A',
'links': [],
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': 'A',
'name': 'A',
'links': [],
'color': 'D1302F',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': 'FFFFFF',
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'codes': [],
'closing_time': '013940',
'opening_time': '044140',
'commercial_mode': {'id': 'commercial_mode:TNRER', 'name': 'RER'},
'id': 'line:SNCF:A'},
'id': 'route:SNCF:A'},
'links': [{'type': 'line', 'id': 'line:SNCF:A'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:QIWI64:1187:RapidTransit'},
{'type': 'route', 'id': 'route:SNCF:A'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TNRER'},
{'type': 'physical_mode', 'id': 'physical_mode:RapidTransit'},
{'type': 'network', 'id': 'network:SNCF:TNRER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T120630',
'additional_informations': [],
'departure_date_time': '20221207T120710',
'base_arrival_date_time': '20221207T120630',
'base_departure_date_time': '20221207T120710',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Melun (Melun)',
'code': 'D',
'network': 'RER',
'links': [],
'color': '5E9620',
'name': 'D',
'physical_mode': 'RER / Transilien',
'headsign': 'ZACO',
'label': 'D',
'equipments': [],
'text_color': 'FFFFFF',
'trip_short_name': '153648-153649',
'commercial_mode': 'RER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TNRER',
'name': 'RER'}],
'name': 'Paris Gare de Lyon Souterrain',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 7.28, 'unit': 'gEC/Km'},
'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'coord': {'lat': '48.844888', 'lon': '2.37352'},
'label': 'Paris Gare de Lyon Souterrain (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686030:RapidTransit',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87681007'},
{'type': 'uic', 'value': '87681007'}],
'name': 'Corbeil-Essonnes',
'links': [],
'coord': {'lat': '48.614405', 'lon': '2.47376'},
'label': 'Corbeil-Essonnes (Corbeil-Essonnes)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87681007'},
'quality': 0,
'name': 'Corbeil-Essonnes (Corbeil-Essonnes)',
'id': 'stop_area:SNCF:87681007'},
'name': 'D',
'links': [],
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': 'D',
'name': 'D',
'links': [],
'color': '5E9620',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': 'FFFFFF',
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'codes': [],
'closing_time': '015150',
'opening_time': '030800',
'commercial_mode': {'id': 'commercial_mode:TNRER', 'name': 'RER'},
'id': 'line:SNCF:D'},
'id': 'route:SNCF:D'},
'links': [{'type': 'line', 'id': 'line:SNCF:D'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:153648-153649:1187:RapidTransit'},
{'type': 'route', 'id': 'route:SNCF:D'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TNRER'},
{'type': 'physical_mode', 'id': 'physical_mode:RapidTransit'},
{'type': 'network', 'id': 'network:SNCF:TNRER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T120750',
'additional_informations': [],
'departure_date_time': '20221207T120900',
'base_arrival_date_time': '20221207T120750',
'base_departure_date_time': '20221207T120900',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Saint-Germain-en-Laye (Saint-Germain-en-Laye)',
'code': 'A',
'network': 'RER',
'links': [],
'color': 'D1302F',
'name': 'A',
'physical_mode': 'RER / Transilien',
'headsign': 'ZUPE',
'label': 'A',
'equipments': [],
'text_color': 'FFFFFF',
'trip_short_name': 'ZUPE65',
'commercial_mode': 'RER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TNRER',
'name': 'RER'}],
'name': 'Paris-Gare-de-Lyon RER',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 7.28, 'unit': 'gEC/Km'},
'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'coord': {'lat': '48.843811', 'lon': '2.374082'},
'label': 'Paris-Gare-de-Lyon RER (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87758581:RapidTransit',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87758201'},
{'type': 'uic', 'value': '87758201'}],
'name': 'Boissy-Saint-Léger',
'links': [],
'coord': {'lat': '48.753076', 'lon': '2.505344'},
'label': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87758201'},
'quality': 0,
'name': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'id': 'stop_area:SNCF:87758201'},
'name': 'A',
'links': [],
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': 'A',
'name': 'A',
'links': [],
'color': 'D1302F',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': 'FFFFFF',
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'codes': [],
'closing_time': '013940',
'opening_time': '044140',
'commercial_mode': {'id': 'commercial_mode:TNRER', 'name': 'RER'},
'id': 'line:SNCF:A'},
'id': 'route:SNCF:A'},
'links': [{'type': 'line', 'id': 'line:SNCF:A'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:ZUPE65:1187:RapidTransit'},
{'type': 'route', 'id': 'route:SNCF:A'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TNRER'},
{'type': 'physical_mode', 'id': 'physical_mode:RapidTransit'},
{'type': 'network', 'id': 'network:SNCF:TNRER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T120835',
'additional_informations': [],
'departure_date_time': '20221207T120910',
'base_arrival_date_time': '20221207T120835',
'base_departure_date_time': '20221207T120910',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'code': 'A',
'network': 'RER',
'links': [],
'color': 'D1302F',
'name': 'A',
'physical_mode': 'RER / Transilien',
'headsign': 'NATO',
'label': 'A',
'equipments': [],
'text_color': 'FFFFFF',
'trip_short_name': 'NATO66',
'commercial_mode': 'RER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TNRER',
'name': 'RER'}],
'name': 'Paris-Gare-de-Lyon RER',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 7.28, 'unit': 'gEC/Km'},
'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'coord': {'lat': '48.843811', 'lon': '2.374082'},
'label': 'Paris-Gare-de-Lyon RER (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87758581:RapidTransit',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87758201'},
{'type': 'uic', 'value': '87758201'}],
'name': 'Boissy-Saint-Léger',
'links': [],
'coord': {'lat': '48.753076', 'lon': '2.505344'},
'label': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87758201'},
'quality': 0,
'name': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'id': 'stop_area:SNCF:87758201'},
'name': 'A',
'links': [],
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': 'A',
'name': 'A',
'links': [],
'color': 'D1302F',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': 'FFFFFF',
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'codes': [],
'closing_time': '013940',
'opening_time': '044140',
'commercial_mode': {'id': 'commercial_mode:TNRER', 'name': 'RER'},
'id': 'line:SNCF:A'},
'id': 'route:SNCF:A'},
'links': [{'type': 'line', 'id': 'line:SNCF:A'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:NATO66:1187:RapidTransit'},
{'type': 'route', 'id': 'route:SNCF:A'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TNRER'},
{'type': 'physical_mode', 'id': 'physical_mode:RapidTransit'},
{'type': 'network', 'id': 'network:SNCF:TNRER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T121030',
'additional_informations': [],
'departure_date_time': '20221207T121110',
'base_arrival_date_time': '20221207T121030',
'base_departure_date_time': '20221207T121110',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Poissy (Poissy)',
'code': 'A',
'network': 'RER',
'links': [],
'color': 'D1302F',
'name': 'A',
'physical_mode': 'RER / Transilien',
'headsign': 'TROC',
'label': 'A',
'equipments': [],
'text_color': 'FFFFFF',
'trip_short_name': 'TROC65',
'commercial_mode': 'RER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TNRER',
'name': 'RER'}],
'name': 'Paris-Gare-de-Lyon RER',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 7.28, 'unit': 'gEC/Km'},
'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'coord': {'lat': '48.843811', 'lon': '2.374082'},
'label': 'Paris-Gare-de-Lyon RER (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87758581:RapidTransit',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87758201'},
{'type': 'uic', 'value': '87758201'}],
'name': 'Boissy-Saint-Léger',
'links': [],
'coord': {'lat': '48.753076', 'lon': '2.505344'},
'label': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87758201'},
'quality': 0,
'name': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'id': 'stop_area:SNCF:87758201'},
'name': 'A',
'links': [],
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': 'A',
'name': 'A',
'links': [],
'color': 'D1302F',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': 'FFFFFF',
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'codes': [],
'closing_time': '013940',
'opening_time': '044140',
'commercial_mode': {'id': 'commercial_mode:TNRER', 'name': 'RER'},
'id': 'line:SNCF:A'},
'id': 'route:SNCF:A'},
'links': [{'type': 'line', 'id': 'line:SNCF:A'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:TROC65:1187:RapidTransit'},
{'type': 'route', 'id': 'route:SNCF:A'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TNRER'},
{'type': 'physical_mode', 'id': 'physical_mode:RapidTransit'},
{'type': 'network', 'id': 'network:SNCF:TNRER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T121235',
'additional_informations': [],
'departure_date_time': '20221207T121310',
'base_arrival_date_time': '20221207T121235',
'base_departure_date_time': '20221207T121310',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Torcy (Torcy)',
'code': 'A',
'network': 'RER',
'links': [],
'color': 'D1302F',
'name': 'A',
'physical_mode': 'RER / Transilien',
'headsign': 'OKLA',
'label': 'A',
'equipments': [],
'text_color': 'FFFFFF',
'trip_short_name': 'OKLA66',
'commercial_mode': 'RER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TNRER',
'name': 'RER'}],
'name': 'Paris-Gare-de-Lyon RER',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 7.28, 'unit': 'gEC/Km'},
'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'coord': {'lat': '48.843811', 'lon': '2.374082'},
'label': 'Paris-Gare-de-Lyon RER (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87758581:RapidTransit',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87758201'},
{'type': 'uic', 'value': '87758201'}],
'name': 'Boissy-Saint-Léger',
'links': [],
'coord': {'lat': '48.753076', 'lon': '2.505344'},
'label': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87758201'},
'quality': 0,
'name': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'id': 'stop_area:SNCF:87758201'},
'name': 'A',
'links': [],
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': 'A',
'name': 'A',
'links': [],
'color': 'D1302F',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': 'FFFFFF',
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'codes': [],
'closing_time': '013940',
'opening_time': '044140',
'commercial_mode': {'id': 'commercial_mode:TNRER', 'name': 'RER'},
'id': 'line:SNCF:A'},
'id': 'route:SNCF:A'},
'links': [{'type': 'line', 'id': 'line:SNCF:A'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:OKLA66:1187:RapidTransit'},
{'type': 'route', 'id': 'route:SNCF:A'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TNRER'},
{'type': 'physical_mode', 'id': 'physical_mode:RapidTransit'},
{'type': 'network', 'id': 'network:SNCF:TNRER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T121430',
'additional_informations': [],
'departure_date_time': '20221207T121510',
'base_arrival_date_time': '20221207T121430',
'base_departure_date_time': '20221207T121510',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Corbeil-Essonnes (Corbeil-Essonnes)',
'code': 'D',
'network': 'RER',
'links': [],
'color': '5E9620',
'name': 'D',
'physical_mode': 'RER / Transilien',
'headsign': 'ROPO',
'label': 'D',
'equipments': [],
'text_color': 'FFFFFF',
'trip_short_name': '155842-155843',
'commercial_mode': 'RER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TNRER',
'name': 'RER'}],
'name': 'Paris Gare de Lyon Souterrain',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 7.28, 'unit': 'gEC/Km'},
'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'coord': {'lat': '48.844888', 'lon': '2.37352'},
'label': 'Paris Gare de Lyon Souterrain (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686030:RapidTransit',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87681007'},
{'type': 'uic', 'value': '87681007'}],
'name': 'Corbeil-Essonnes',
'links': [],
'coord': {'lat': '48.614405', 'lon': '2.47376'},
'label': 'Corbeil-Essonnes (Corbeil-Essonnes)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87681007'},
'quality': 0,
'name': 'Corbeil-Essonnes (Corbeil-Essonnes)',
'id': 'stop_area:SNCF:87681007'},
'name': 'D',
'links': [],
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': 'D',
'name': 'D',
'links': [],
'color': '5E9620',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': 'FFFFFF',
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'codes': [],
'closing_time': '015150',
'opening_time': '030800',
'commercial_mode': {'id': 'commercial_mode:TNRER', 'name': 'RER'},
'id': 'line:SNCF:D'},
'id': 'route:SNCF:D'},
'links': [{'type': 'line', 'id': 'line:SNCF:D'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:155842-155843:1187:RapidTransit'},
{'type': 'route', 'id': 'route:SNCF:D'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TNRER'},
{'type': 'physical_mode', 'id': 'physical_mode:RapidTransit'},
{'type': 'network', 'id': 'network:SNCF:TNRER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T121500',
'additional_informations': [],
'departure_date_time': '20221207T121600',
'base_arrival_date_time': '20221207T121500',
'base_departure_date_time': '20221207T121600',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Montargis (Montargis)',
'code': 'R',
'network': 'TRANSILIEN',
'links': [],
'color': 'E4B4D1',
'name': 'R',
'physical_mode': 'RER / Transilien',
'headsign': 'GAMO',
'label': 'R',
'equipments': [],
'text_color': 'FFFFFF',
'trip_short_name': '151841',
'commercial_mode': 'TRANSILIEN',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TN',
'name': 'TRANSILIEN'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 7.28, 'unit': 'gEC/Km'},
'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:RapidTransit',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87682302'},
{'type': 'uic', 'value': '87682302'}],
'name': 'Montereau',
'links': [],
'coord': {'lat': '48.379902', 'lon': '2.94293'},
'label': 'Montereau (Montereau-Fault-Yonne)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87682302'},
'quality': 0,
'name': 'Montereau (Montereau-Fault-Yonne)',
'id': 'stop_area:SNCF:87682302'},
'name': 'R',
'links': [],
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': 'R',
'name': 'R',
'links': [],
'color': 'E4B4D1',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': 'FFFFFF',
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'codes': [],
'closing_time': '014500',
'opening_time': '044830',
'commercial_mode': {'id': 'commercial_mode:TN', 'name': 'TRANSILIEN'},
'id': 'line:SNCF:R'},
'id': 'route:SNCF:R'},
'links': [{'type': 'line', 'id': 'line:SNCF:R'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:151841:1187:RapidTransit'},
{'type': 'route', 'id': 'route:SNCF:R'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TN'},
{'type': 'physical_mode', 'id': 'physical_mode:RapidTransit'},
{'type': 'network', 'id': 'network:SNCF:TN'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T121600',
'additional_informations': [],
'departure_date_time': '20221207T121600',
'base_arrival_date_time': '20221207T121600',
'base_departure_date_time': '20221207T121600',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Cergy le Haut (Cergy)',
'code': 'A',
'network': 'RER',
'links': [],
'color': 'D1302F',
'name': 'A',
'physical_mode': 'RER / Transilien',
'headsign': 'UZAR',
'label': 'A',
'equipments': [],
'text_color': 'FFFFFF',
'trip_short_name': 'UZAR67',
'commercial_mode': 'RER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TNRER',
'name': 'RER'}],
'name': 'Paris-Gare-de-Lyon RER',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 7.28, 'unit': 'gEC/Km'},
'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'coord': {'lat': '48.843811', 'lon': '2.374082'},
'label': 'Paris-Gare-de-Lyon RER (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87758581:RapidTransit',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87758201'},
{'type': 'uic', 'value': '87758201'}],
'name': 'Boissy-Saint-Léger',
'links': [],
'coord': {'lat': '48.753076', 'lon': '2.505344'},
'label': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87758201'},
'quality': 0,
'name': 'Boissy-Saint-Léger (Boissy-Saint-Léger)',
'id': 'stop_area:SNCF:87758201'},
'name': 'A',
'links': [],
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': 'A',
'name': 'A',
'links': [],
'color': 'D1302F',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': 'FFFFFF',
'physical_modes': [{'id': 'physical_mode:RapidTransit',
'name': 'RER / Transilien'}],
'codes': [],
'closing_time': '013940',
'opening_time': '044140',
'commercial_mode': {'id': 'commercial_mode:TNRER', 'name': 'RER'},
'id': 'line:SNCF:A'},
'id': 'route:SNCF:A'},
'links': [{'type': 'line', 'id': 'line:SNCF:A'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:UZAR67:1187:RapidTransit'},
{'type': 'route', 'id': 'route:SNCF:A'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TNRER'},
{'type': 'physical_mode', 'id': 'physical_mode:RapidTransit'},
{'type': 'network', 'id': 'network:SNCF:TNRER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T121635',
'additional_informations': [],
'departure_date_time': '20221207T121710',
'base_arrival_date_time': '20221207T121635',
'base_departure_date_time': '20221207T121710',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Genève (Genève)',
'code': '',
'network': 'TGV Lyria',
'links': [],
'color': '',
'name': 'Genève - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '9773',
'label': 'Genève - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '9773',
'commercial_mode': 'TGV Lyria',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id',
'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Genève - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Genève - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '235500',
'opening_time': '061800',
'commercial_mode': {'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
'id': 'line:SNCF:CSR:622500'},
'id': 'route:SNCF:CSR:622500'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:622500'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-07:9773:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:622500'},
{'type': 'commercial_mode', 'id': 'commercial_mode:LYR'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:LYR'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221207T121800',
'additional_informations': [],
'departure_date_time': '20221207T121800',
'base_arrival_date_time': '20221207T121800',
'base_departure_date_time': '20221207T121800',
'data_freshness': 'base_schedule'}}],
'context': {'timezone': 'Europe/Paris',
'current_datetime': '20221207T120552'},
'exceptions': []}
### les trains qui partent autour de 19h00
departs_paris = requests.get(
('https://api.sncf.com/v1/coverage/sncf/stop_areas/stop_area:SNCF:'
'87686006/departures?from_datetime={}').format(
date_depart), auth=(token_auth, '')).json()
# Nombre de trains que l'API renvoie à partir de cet horaire-là
#print(len(departs_paris['departures']))
departs_paris
{'pagination': {'start_page': 0,
'items_on_page': 10,
'items_per_page': 10,
'total_result': 10},
'links': [{'href': 'https://api.sncf.com/v1/coverage/sncf/stop_points/{stop_point.id}',
'type': 'stop_point',
'rel': 'stop_points',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/commercial_modes/{commercial_modes.id}',
'type': 'commercial_modes',
'rel': 'commercial_modes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/stop_areas/{stop_area.id}',
'type': 'stop_area',
'rel': 'stop_areas',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/physical_modes/{physical_modes.id}',
'type': 'physical_modes',
'rel': 'physical_modes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/routes/{route.id}',
'type': 'route',
'rel': 'routes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/commercial_modes/{commercial_mode.id}',
'type': 'commercial_mode',
'rel': 'commercial_modes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/vehicle_journeys/{vehicle_journey.id}',
'type': 'vehicle_journey',
'rel': 'vehicle_journeys',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/lines/{line.id}',
'type': 'line',
'rel': 'lines',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/physical_modes/{physical_mode.id}',
'type': 'physical_mode',
'rel': 'physical_modes',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/networks/{network.id}',
'type': 'network',
'rel': 'networks',
'templated': True},
{'href': 'https://api.sncf.com/v1/coverage/sncf/stop_areas/stop_area:SNCF:87686006/departures?from_datetime=20221221T112354',
'type': 'first',
'templated': False}],
'disruptions': [],
'notes': [],
'feed_publishers': [{'url': '',
'id': 'sncf',
'license': 'Private (unspecified)',
'name': 'SNCF PIV Production'},
{'url': '',
'id': 'SNCF:sncf-piv',
'license': 'Private (unspecified)',
'name': 'SNCF PIV Production'}],
'departures': [{'display_informations': {'direction': 'Marseille Saint-Charles (Marseille)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6111',
'label': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6111',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id',
'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '010200',
'opening_time': '052000',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:631200'},
'id': 'route:SNCF:CSR:631200'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:631200'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6111:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:631200'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T113300',
'additional_informations': [],
'departure_date_time': '20221221T113300',
'base_arrival_date_time': '20221221T113300',
'base_departure_date_time': '20221221T113300',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Perpignan (Perpignan)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Perpignan - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6275',
'label': 'Perpignan - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6275',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id',
'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Perpignan - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Perpignan - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '002500',
'opening_time': '051700',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:631300'},
'id': 'route:SNCF:CSR:631300'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:631300'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6275:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:631300'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T114300',
'additional_informations': [],
'departure_date_time': '20221221T114300',
'base_arrival_date_time': '20221221T114300',
'base_departure_date_time': '20221221T114300',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Lyon Perrache (Lyon)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6613',
'label': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6613',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id',
'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '001800',
'opening_time': '054700',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:601100'},
'id': 'route:SNCF:CSR:601100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:601100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6613:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:601100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T114800',
'additional_informations': [],
'departure_date_time': '20221221T114800',
'base_arrival_date_time': '20221221T114800',
'base_departure_date_time': '20221221T114800',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Lausanne (Lausanne)',
'code': '',
'network': 'TGV Lyria',
'links': [],
'color': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Lausanne',
'physical_mode': 'Train grande vitesse',
'headsign': '9269',
'label': 'Paris Gare de Lyon Hall 1 &2 - Lausanne',
'equipments': [],
'text_color': '',
'trip_short_name': '9269',
'commercial_mode': 'TGV Lyria',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id',
'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Paris Gare de Lyon Hall 1 &2 - Lausanne',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Lausanne',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '213700',
'opening_time': '072300',
'commercial_mode': {'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
'id': 'line:SNCF:CSR:612500'},
'id': 'route:SNCF:CSR:612500'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:612500'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:9269:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:612500'},
{'type': 'commercial_mode', 'id': 'commercial_mode:LYR'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:LYR'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T115400',
'additional_informations': [],
'departure_date_time': '20221221T115400',
'base_arrival_date_time': '20221221T115400',
'base_departure_date_time': '20221221T115400',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Grenoble (Grenoble)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6917',
'label': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6917',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87747006'},
{'type': 'uic', 'value': '87747006'}],
'name': 'Grenoble',
'links': [],
'coord': {'lat': '45.191491', 'lon': '5.714548'},
'label': 'Grenoble (Grenoble)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87747006'},
'quality': 0,
'name': 'Grenoble (Grenoble)',
'id': 'stop_area:SNCF:87747006'},
'name': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '234900',
'opening_time': '051900',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:621100'},
'id': 'route:SNCF:CSR:621100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:621100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6917:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:621100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T120800',
'additional_informations': [],
'departure_date_time': '20221221T120800',
'base_arrival_date_time': '20221221T120800',
'base_departure_date_time': '20221221T120800',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Miramas (Miramas)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Avignon Centre',
'physical_mode': 'Train grande vitesse',
'headsign': '6193',
'label': 'Paris Gare de Lyon Hall 1 &2 - Avignon Centre',
'equipments': [],
'text_color': '',
'trip_short_name': '6193',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id',
'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Paris Gare de Lyon Hall 1 &2 - Avignon Centre',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Avignon Centre',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '224000',
'opening_time': '062200',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:631400'},
'id': 'route:SNCF:CSR:631400'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:631400'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6193:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:631400'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T120800',
'additional_informations': [],
'departure_date_time': '20221221T120800',
'base_arrival_date_time': '20221221T120800',
'base_departure_date_time': '20221221T120800',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Genève (Genève)',
'code': '',
'network': 'TGV Lyria',
'links': [],
'color': '',
'name': 'Genève - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '9773',
'label': 'Genève - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '9773',
'commercial_mode': 'TGV Lyria',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id',
'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Genève - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Genève - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '235500',
'opening_time': '061800',
'commercial_mode': {'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
'id': 'line:SNCF:CSR:622500'},
'id': 'route:SNCF:CSR:622500'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:622500'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:9773:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:622500'},
{'type': 'commercial_mode', 'id': 'commercial_mode:LYR'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:LYR'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T121400',
'additional_informations': [],
'departure_date_time': '20221221T121400',
'base_arrival_date_time': '20221221T121400',
'base_departure_date_time': '20221221T121400',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Zuerich HB (Zürich)',
'code': '',
'network': 'TGV Lyria',
'links': [],
'color': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'physical_mode': 'Train grande vitesse',
'headsign': '9213',
'label': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'equipments': [],
'text_color': '',
'trip_short_name': '9213',
'commercial_mode': 'TGV Lyria',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id',
'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '224900',
'opening_time': '071500',
'commercial_mode': {'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
'id': 'line:SNCF:CSR:612200'},
'id': 'route:SNCF:CSR:612200'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:612200'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:9213:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:612200'},
{'type': 'commercial_mode', 'id': 'commercial_mode:LYR'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:LYR'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T121900',
'additional_informations': [],
'departure_date_time': '20221221T121900',
'base_arrival_date_time': '20221221T121900',
'base_departure_date_time': '20221221T121900',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Lyon Perrache (Lyon)',
'code': '',
'network': 'OUIGO',
'links': [],
'color': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '7803',
'label': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '7803',
'commercial_mode': 'OUIGO',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id',
'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '233900',
'opening_time': '060600',
'commercial_mode': {'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'},
'id': 'line:SNCF:CSR:633400'},
'id': 'route:SNCF:CSR:633400'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:633400'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:7803:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:633400'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TGVOUIGO'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:TGVOUIGO'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T122300',
'additional_informations': [],
'departure_date_time': '20221221T122300',
'base_arrival_date_time': '20221221T122300',
'base_departure_date_time': '20221221T122300',
'data_freshness': 'base_schedule'}},
{'display_informations': {'direction': 'Marseille Saint-Charles (Marseille)',
'code': '',
'network': 'OUIGO',
'links': [],
'color': '',
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '7825',
'label': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '7825',
'commercial_mode': 'OUIGO',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87751008'},
{'type': 'uic', 'value': '87751008'}],
'name': 'Marseille Saint-Charles',
'links': [],
'coord': {'lat': '43.302666', 'lon': '5.380407'},
'label': 'Marseille Saint-Charles (Marseille)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87751008'},
'quality': 0,
'name': 'Marseille Saint-Charles (Marseille)',
'id': 'stop_area:SNCF:87751008'},
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '210200',
'opening_time': '055000',
'commercial_mode': {'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'},
'id': 'line:SNCF:CSR:633100'},
'id': 'route:SNCF:CSR:633100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:633100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:7825:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:633100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TGVOUIGO'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:TGVOUIGO'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T122800',
'additional_informations': [],
'departure_date_time': '20221221T122800',
'base_arrival_date_time': '20221221T122800',
'base_departure_date_time': '20221221T122800',
'data_freshness': 'base_schedule'}}],
'context': {'timezone': 'Europe/Paris',
'current_datetime': '20221207T121038'},
'exceptions': []}
from jyquickhelper import JSONJS
JSONJS(departs_paris)
Quels sont les horaires de départ de ces trains ?
for i in range(len(departs_paris['departures'])) :
print(departs_paris['departures'][i]['stop_date_time']['departure_date_time'])
20221221T113300
20221221T114300
20221221T114800
20221221T115400
20221221T120800
20221221T120800
20221221T121400
20221221T121900
20221221T122300
20221221T122800
Parmi ces trains, combien de trains ont pour destination finale Lyon et qui partent le 17 novembre ?
nombre_trains_pour_lyon = 0
for depart in departs_paris['departures'] :
if "Lyon" in depart['display_informations']['direction']:
if (convertir_en_temps(depart['stop_date_time']['arrival_date_time']) >
convertir_en_temps(date_depart) and
convertir_en_temps(depart['stop_date_time']['arrival_date_time']) <
datetime(2022,12,31,0,0,0)):
nombre_trains_pour_lyon += 1
print("le prochain départ pour Lyon sera le",
convertir_en_temps(depart['stop_date_time']['arrival_date_time']))
print("Il y a" , nombre_trains_pour_lyon, "train(s) pour Lyon dans les trains proposés",
"par l'API qui partent encore le 17 novembre")
le prochain départ pour Lyon sera le 2022-12-21 11:48:00
le prochain départ pour Lyon sera le 2022-12-21 12:23:00
Il y a 2 train(s) pour Lyon dans les trains proposés par l'API qui partent encore le 17 novembre
C’est quand qu’on va où ?#
En fait, vous n’êtes plus très sûr de vouloir aller à Lyon. Mais bon maintenant vous êtes Gare de Lyon et il est 18h00.
Question 3#
Combien de tgv partent entre 18h00 et 20h00 ?
Lequel arrive le plus tôt à sa destination finale ?
# on crée deux fonctions :
def trouver_destination_tgv(origine, datetime) :
'''Permet d avoir les 10 prochains départs d une gare donnée '''
return requests.get('https://api.sncf.com/v1/coverage/sncf/stop_areas/{}/' \
'departures?from_datetime={}'.format(origine, datetime) ,
auth=(token_auth, '')).json()
def trouver_trajet_dispo_max_heure(gare_depart, date_heure_depart, date_heure_max) :
'''Permet d avoir toutes les informations sur des trajets partant
d une gare entre une date X et une date Y'''
destinations = []
# on interroge l'API tant qu'il renvoie des information
# sur les trains partant de Gare de lyon
while convertir_en_temps(date_heure_depart) < convertir_en_temps(date_heure_max) :
# on prend toutes les destinations qui partent à partir d'une certaine heure
destinations = destinations + trouver_destination_tgv(
gare_depart, date_heure_depart)['departures']
nombre_resultats = trouver_destination_tgv(
gare_depart, date_heure_depart)['pagination']['items_on_page']
if nombre_resultats <= 0:
break
# on trouve l'heure max de la première série de 10 solutions que l'application renvoie
# on remplace l'heure qu'on cherche par celle là
resultats = trouver_destination_tgv(gare_depart, date_heure_depart)
date_heure_depart = resultats['departures'][nombre_resultats-1][
'stop_date_time']['departure_date_time']
return destinations
# on trouve l'ensemble des trajets dont le départ est compris entre deux horaires
# informations sur le trajet qu'on choisit dans le futur
# l'API ne retourne pas de résultatq très loin dans le passé
now = datetime.now()
if now.hour < 6:
# pas trop tôt
now += timedelta(hours=4)
dt = now + timedelta(14) # dans deux semaines
date_heure = convertir_en_chaine(dt)
max_date_heure = convertir_en_chaine(dt + timedelta(hours=24))
print("entre", date_heure, "et", max_date_heure)
gare_initiale = 'stop_area:SNCF:87686006'
# on demande à avoir tous les trajets partant de gare de lyon
# entre deux heures précises
destinations_depuis_paris_max_20h = trouver_trajet_dispo_max_heure(
gare_initiale, date_heure, max_date_heure)
# on veut supprimer ceux pour lesquels le départ est après 20h00
dictionnaire_destinations = {}
i = 0
for depart in destinations_depuis_paris_max_20h :
print(depart['display_informations']['direction'],
depart['stop_date_time']['departure_date_time'])
if (convertir_en_temps(depart['stop_date_time']['departure_date_time']) <
convertir_en_temps(max_date_heure)):
i += 1
dictionnaire_destinations[i] = depart
print("Je peux prendre", len(dictionnaire_destinations.keys()),
"trains qui partent entre 18h et 20h de Gare de Lyon")
entre 20221221T121515 et 20221222T121515
Zuerich HB (Zürich) 20221221T121900
Lyon Perrache (Lyon) 20221221T122300
Marseille Saint-Charles (Marseille) 20221221T122800
Annecy (Annecy) 20221221T123800
Lyon Perrache (Lyon) 20221221T124200
Saint-Étienne Châteaucreux (Saint-Étienne) 20221221T124200
Laroche - Migennes (Migennes) 20221221T124600
Lyon Perrache (Lyon) 20221221T134100
Nice-Ville (Nice) 20221221T134900
Grenoble (Grenoble) 20221221T135500
Grenoble (Grenoble) 20221221T135500
Lausanne (Lausanne) 20221221T141000
Basel SBB (Basel) 20221221T141500
Montpellier Saint-Roch (Montpellier) 20221221T143400
Marseille Saint-Charles (Marseille) 20221221T143900
MILANO PORTA GARIBALDI (Milano) 20221221T144500
Laroche - Migennes (Migennes) 20221221T144600
Besançon Viotte (Besançon) 20221221T144900
Barcelone-Sants (Barcelona) 20221221T145400
Lyon Perrache (Lyon) 20221221T145900
Lyon Perrache (Lyon) 20221221T145900
Marseille Saint-Charles (Marseille) 20221221T153800
Lyon Perrache (Lyon) 20221221T154900
Nice-Ville (Nice) 20221221T155900
Grenoble (Grenoble) 20221221T160800
Lausanne (Lausanne) 20221221T161400
Zuerich HB (Zürich) 20221221T161900
Laroche - Migennes (Migennes) 20221221T162000
Marseille Saint-Charles (Marseille) 20221221T163000
Besançon Viotte (Besançon) 20221221T164300
Besançon Viotte (Besançon) 20221221T164300
Montpellier Saint-Roch (Montpellier) 20221221T165300
Perpignan (Perpignan) 20221221T165300
Lyon Perrache (Lyon) 20221221T165800
Saint-Étienne Châteaucreux (Saint-Étienne) 20221221T165800
Miramas (Miramas) 20221221T170800
Grenoble (Grenoble) 20221221T170800
Laroche - Migennes (Migennes) 20221221T171200
Mulhouse (Mulhouse) 20221221T171300
Nice-Ville (Nice) 20221221T171800
Nice-Ville (Nice) 20221221T171800
Laroche - Migennes (Migennes) 20221221T172100
Lyon Perrache (Lyon) 20221221T172300
Marseille Saint-Charles (Marseille) 20221221T172800
Perpignan (Perpignan) 20221221T173300
Annecy (Annecy) 20221221T173900
Lyon Perrache (Lyon) 20221221T174300
Lausanne (Lausanne) 20221221T174700
Toulon (Toulon) 20221221T175600
Grenoble (Grenoble) 20221221T180900
Grenoble (Grenoble) 20221221T180900
Laroche - Migennes (Migennes) 20221221T181200
Genève (Genève) 20221221T181400
Zuerich HB (Zürich) 20221221T181900
Laroche - Migennes (Migennes) 20221221T182200
Lyon Perrache (Lyon) 20221221T182300
Lyon Perrache (Lyon) 20221221T182800
Marseille Saint-Charles (Marseille) 20221221T183200
Annecy (Annecy) 20221221T184300
Mulhouse (Mulhouse) 20221221T184900
Mulhouse (Mulhouse) 20221221T184900
Montpellier Sud de France (Montpellier) 20221221T185400
Saint-Étienne Châteaucreux (Saint-Étienne) 20221221T185900
Grenoble (Grenoble) 20221221T191100
Laroche - Migennes (Migennes) 20221221T191200
Lyon Perrache (Lyon) 20221221T192500
Marseille Saint-Charles (Marseille) 20221221T193700
Montpellier Saint-Roch (Montpellier) 20221221T194200
Laroche - Migennes (Migennes) 20221221T194600
Lyon Perrache (Lyon) 20221221T195500
Lyon Perrache (Lyon) 20221221T195500
Marseille Saint-Charles (Marseille) 20221221T201000
Genève (Genève) 20221221T201600
Mulhouse (Mulhouse) 20221221T202100
Lyon Perrache (Lyon) 20221221T205700
Lyon Perrache (Lyon) 20221222T054700
Marseille Saint-Charles (Marseille) 20221222T055000
Lausanne (Lausanne) 20221222T061800
Lyon Perrache (Lyon) 20221222T062400
Marseille Saint-Charles (Marseille) 20221222T062900
Marseille Saint-Charles (Marseille) 20221222T062900
Annecy (Annecy) 20221222T063900
MILANO PORTA GARIBALDI (Milano) 20221222T063900
Besançon Viotte (Besançon) 20221222T064500
Laroche - Migennes (Migennes) 20221222T064600
Perpignan (Perpignan) 20221222T064900
Lyon Perrache (Lyon) 20221222T065400
Grenoble (Grenoble) 20221222T070900
Avignon Centre (Avignon) 20221222T070900
Zuerich HB (Zürich) 20221222T071500
Zuerich HB (Zürich) 20221222T071500
Lyon Perrache (Lyon) 20221222T071900
Marseille Saint-Charles (Marseille) 20221222T073400
Montpellier Saint-Roch (Montpellier) 20221222T073900
Saint-Étienne Châteaucreux (Saint-Étienne) 20221222T074800
Lausanne (Lausanne) 20221222T075300
Genève (Genève) 20221222T081400
Nice-Ville (Nice) 20221222T081800
Laroche - Migennes (Migennes) 20221222T084600
Lyon Part Dieu (Lyon) 20221222T085700
Lyon Part Dieu (Lyon) 20221222T085700
Nice-Ville (Nice) 20221222T090700
Hyères (Hyères) 20221222T090700
Mulhouse (Mulhouse) 20221222T091800
Marseille Saint-Charles (Marseille) 20221222T093300
Barcelone-Sants (Barcelona) 20221222T093800
Montpellier Saint-Roch (Montpellier) 20221222T093800
Annecy (Annecy) 20221222T094300
MILANO PORTA GARIBALDI (Milano) 20221222T094300
Lyon Perrache (Lyon) 20221222T095400
Lyon Perrache (Lyon) 20221222T095400
Nice-Ville (Nice) 20221222T095900
Genève (Genève) 20221222T101500
Zuerich HB (Zürich) 20221222T102000
Marseille Saint-Charles (Marseille) 20221222T103400
Bourg-Saint-Maurice (Bourg-Saint-Maurice) 20221222T103900
Laroche - Migennes (Migennes) 20221222T104600
Lyon Perrache (Lyon) 20221222T105700
Mulhouse (Mulhouse) 20221222T111300
Marseille Saint-Charles (Marseille) 20221222T113300
Marseille Saint-Charles (Marseille) 20221222T113300
Perpignan (Perpignan) 20221222T114300
Montpellier Sud de France (Montpellier) 20221222T114300
Lyon Perrache (Lyon) 20221222T114800
Lausanne (Lausanne) 20221222T115400
Grenoble (Grenoble) 20221222T120800
Miramas (Miramas) 20221222T120800
Genève (Genève) 20221222T121400
Zuerich HB (Zürich) 20221222T121900
Lyon Perrache (Lyon) 20221222T122300
Je peux prendre 128 trains qui partent entre 18h et 20h de Gare de Lyon
dictionnaire_destinations
{1: {'display_informations': {'direction': 'Zuerich HB (Zürich)',
'code': '',
'network': 'TGV Lyria',
'links': [],
'color': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'physical_mode': 'Train grande vitesse',
'headsign': '9213',
'label': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'equipments': [],
'text_color': '',
'trip_short_name': '9213',
'commercial_mode': 'TGV Lyria',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '224900',
'opening_time': '071500',
'commercial_mode': {'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
'id': 'line:SNCF:CSR:612200'},
'id': 'route:SNCF:CSR:612200'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:612200'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:9213:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:612200'},
{'type': 'commercial_mode', 'id': 'commercial_mode:LYR'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:LYR'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T121900',
'additional_informations': [],
'departure_date_time': '20221221T121900',
'base_arrival_date_time': '20221221T121900',
'base_departure_date_time': '20221221T121900',
'data_freshness': 'base_schedule'}},
2: {'display_informations': {'direction': 'Lyon Perrache (Lyon)',
'code': '',
'network': 'OUIGO',
'links': [],
'color': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '7803',
'label': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '7803',
'commercial_mode': 'OUIGO',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '233900',
'opening_time': '060600',
'commercial_mode': {'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'},
'id': 'line:SNCF:CSR:633400'},
'id': 'route:SNCF:CSR:633400'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:633400'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:7803:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:633400'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TGVOUIGO'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:TGVOUIGO'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T122300',
'additional_informations': [],
'departure_date_time': '20221221T122300',
'base_arrival_date_time': '20221221T122300',
'base_departure_date_time': '20221221T122300',
'data_freshness': 'base_schedule'}},
3: {'display_informations': {'direction': 'Marseille Saint-Charles (Marseille)',
'code': '',
'network': 'OUIGO',
'links': [],
'color': '',
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '7825',
'label': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '7825',
'commercial_mode': 'OUIGO',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87751008'},
{'type': 'uic', 'value': '87751008'}],
'name': 'Marseille Saint-Charles',
'links': [],
'coord': {'lat': '43.302666', 'lon': '5.380407'},
'label': 'Marseille Saint-Charles (Marseille)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87751008'},
'quality': 0,
'name': 'Marseille Saint-Charles (Marseille)',
'id': 'stop_area:SNCF:87751008'},
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '210200',
'opening_time': '055000',
'commercial_mode': {'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'},
'id': 'line:SNCF:CSR:633100'},
'id': 'route:SNCF:CSR:633100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:633100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:7825:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:633100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TGVOUIGO'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:TGVOUIGO'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T122800',
'additional_informations': [],
'departure_date_time': '20221221T122800',
'base_arrival_date_time': '20221221T122800',
'base_departure_date_time': '20221221T122800',
'data_freshness': 'base_schedule'}},
4: {'display_informations': {'direction': 'Annecy (Annecy)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Annecy',
'physical_mode': 'Train grande vitesse',
'headsign': '6941',
'label': 'Paris Gare de Lyon Hall 1 &2 - Annecy',
'equipments': [],
'text_color': '',
'trip_short_name': '6941',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87746008'},
{'type': 'uic', 'value': '87746008'}],
'name': 'Annecy',
'links': [],
'coord': {'lat': '45.902047', 'lon': '6.121826'},
'label': 'Annecy (Annecy)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87746008'},
'quality': 0,
'name': 'Annecy (Annecy)',
'id': 'stop_area:SNCF:87746008'},
'name': 'Paris Gare de Lyon Hall 1 &2 - Annecy',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Annecy',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '002530',
'opening_time': '052900',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:621200'},
'id': 'route:SNCF:CSR:621200'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:621200'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6941:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:621200'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T123800',
'additional_informations': [],
'departure_date_time': '20221221T123800',
'base_arrival_date_time': '20221221T123800',
'base_departure_date_time': '20221221T123800',
'data_freshness': 'base_schedule'}},
5: {'display_informations': {'direction': 'Lyon Perrache (Lyon)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6615',
'label': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6615',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '001800',
'opening_time': '054700',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:601100'},
'id': 'route:SNCF:CSR:601100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:601100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6615:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:601100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T124200',
'additional_informations': [],
'departure_date_time': '20221221T124200',
'base_arrival_date_time': '20221221T124200',
'base_departure_date_time': '20221221T124200',
'data_freshness': 'base_schedule'}},
6: {'display_informations': {'direction': 'Saint-Étienne Châteaucreux (Saint-Étienne)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Saint-Étienne Châteaucreux',
'physical_mode': 'Train grande vitesse',
'headsign': '6685',
'label': 'Paris Gare de Lyon Hall 1 &2 - Saint-Étienne Châteaucreux',
'equipments': [],
'text_color': '',
'trip_short_name': '6685',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Paris Gare de Lyon Hall 1 &2 - Saint-Étienne Châteaucreux',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Saint-Étienne Châteaucreux',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '214900',
'opening_time': '061100',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:601200'},
'id': 'route:SNCF:CSR:601200'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:601200'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6685:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:601200'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T124200',
'additional_informations': [],
'departure_date_time': '20221221T124200',
'base_arrival_date_time': '20221221T124200',
'base_departure_date_time': '20221221T124200',
'data_freshness': 'base_schedule'}},
7: {'display_informations': {'direction': 'Laroche - Migennes (Migennes)',
'code': '',
'network': 'TER',
'links': [],
'color': '',
'name': 'Paris Gdl - Laroche',
'physical_mode': 'TER / Intercités',
'headsign': '891007',
'label': 'Paris Gdl - Laroche',
'equipments': [],
'text_color': '',
'trip_short_name': '891007',
'commercial_mode': 'TER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TER',
'name': 'TER'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 11.9, 'unit': 'gEC/Km'},
'id': 'physical_mode:Train',
'name': 'TER / Intercités'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:Train',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87683268'},
{'type': 'uic', 'value': '87683268'}],
'name': 'Laroche - Migennes',
'links': [],
'coord': {'lat': '47.960998', 'lon': '3.513191'},
'label': 'Laroche - Migennes (Migennes)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87683268'},
'quality': 0,
'name': 'Laroche - Migennes (Migennes)',
'id': 'stop_area:SNCF:87683268'},
'name': 'Paris Gdl - Laroche',
'links': [],
'physical_modes': [{'id': 'physical_mode:Train',
'name': 'TER / Intercités'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gdl - Laroche',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:Train',
'name': 'TER / Intercités'}],
'codes': [],
'closing_time': '003100',
'opening_time': '041000',
'commercial_mode': {'id': 'commercial_mode:TER', 'name': 'TER'},
'id': 'line:SNCF:FR:Line::BE3E2DD5-0143-472B-9CE8-1601556F7950:'},
'id': 'route:SNCF:FR:Line::BE3E2DD5-0143-472B-9CE8-1601556F7950:'},
'links': [{'type': 'line',
'id': 'line:SNCF:FR:Line::BE3E2DD5-0143-472B-9CE8-1601556F7950:'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:891007:1187:Train'},
{'type': 'route',
'id': 'route:SNCF:FR:Line::BE3E2DD5-0143-472B-9CE8-1601556F7950:'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TER'},
{'type': 'physical_mode', 'id': 'physical_mode:Train'},
{'type': 'network', 'id': 'network:SNCF:TER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T124600',
'additional_informations': [],
'departure_date_time': '20221221T124600',
'base_arrival_date_time': '20221221T124600',
'base_departure_date_time': '20221221T124600',
'data_freshness': 'base_schedule'}},
8: {'display_informations': {'direction': 'Lyon Perrache (Lyon)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6617',
'label': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6617',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '001800',
'opening_time': '054700',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:601100'},
'id': 'route:SNCF:CSR:601100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:601100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6617:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:601100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T134100',
'additional_informations': [],
'departure_date_time': '20221221T134100',
'base_arrival_date_time': '20221221T134100',
'base_departure_date_time': '20221221T134100',
'data_freshness': 'base_schedule'}},
9: {'display_informations': {'direction': 'Nice-Ville (Nice)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Nice-Ville - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6077',
'label': 'Nice-Ville - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6077',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87756056'},
{'type': 'uic', 'value': '87756056'}],
'name': 'Nice-Ville',
'links': [],
'coord': {'lat': '43.704556', 'lon': '7.261904'},
'label': 'Nice-Ville (Nice)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87756056'},
'quality': 0,
'name': 'Nice-Ville (Nice)',
'id': 'stop_area:SNCF:87756056'},
'name': 'Nice-Ville - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Nice-Ville - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '004600',
'opening_time': '075200',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:631100'},
'id': 'route:SNCF:CSR:631100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:631100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6077:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:631100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T134900',
'additional_informations': [],
'departure_date_time': '20221221T134900',
'base_arrival_date_time': '20221221T134900',
'base_departure_date_time': '20221221T134900',
'data_freshness': 'base_schedule'}},
10: {'display_informations': {'direction': 'Grenoble (Grenoble)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6919',
'label': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6919',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87747006'},
{'type': 'uic', 'value': '87747006'}],
'name': 'Grenoble',
'links': [],
'coord': {'lat': '45.191491', 'lon': '5.714548'},
'label': 'Grenoble (Grenoble)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87747006'},
'quality': 0,
'name': 'Grenoble (Grenoble)',
'id': 'stop_area:SNCF:87747006'},
'name': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '234900',
'opening_time': '051900',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:621100'},
'id': 'route:SNCF:CSR:621100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:621100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6919:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:621100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T135500',
'additional_informations': [],
'departure_date_time': '20221221T135500',
'base_arrival_date_time': '20221221T135500',
'base_departure_date_time': '20221221T135500',
'data_freshness': 'base_schedule'}},
11: {'display_informations': {'direction': 'Grenoble (Grenoble)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6919',
'label': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6919',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87747006'},
{'type': 'uic', 'value': '87747006'}],
'name': 'Grenoble',
'links': [],
'coord': {'lat': '45.191491', 'lon': '5.714548'},
'label': 'Grenoble (Grenoble)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87747006'},
'quality': 0,
'name': 'Grenoble (Grenoble)',
'id': 'stop_area:SNCF:87747006'},
'name': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Grenoble - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '234900',
'opening_time': '051900',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:621100'},
'id': 'route:SNCF:CSR:621100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:621100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6919:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:621100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T135500',
'additional_informations': [],
'departure_date_time': '20221221T135500',
'base_arrival_date_time': '20221221T135500',
'base_departure_date_time': '20221221T135500',
'data_freshness': 'base_schedule'}},
12: {'display_informations': {'direction': 'Lausanne (Lausanne)',
'code': '',
'network': 'TGV Lyria',
'links': [],
'color': '',
'name': 'Genève - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '9775',
'label': 'Genève - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '9775',
'commercial_mode': 'TGV Lyria',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Genève - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Genève - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '235500',
'opening_time': '061800',
'commercial_mode': {'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
'id': 'line:SNCF:CSR:622500'},
'id': 'route:SNCF:CSR:622500'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:622500'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:9775:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:622500'},
{'type': 'commercial_mode', 'id': 'commercial_mode:LYR'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:LYR'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T141000',
'additional_informations': [],
'departure_date_time': '20221221T141000',
'base_arrival_date_time': '20221221T141000',
'base_departure_date_time': '20221221T141000',
'data_freshness': 'base_schedule'}},
13: {'display_informations': {'direction': 'Basel SBB (Basel)',
'code': '',
'network': 'TGV Lyria',
'links': [],
'color': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'physical_mode': 'Train grande vitesse',
'headsign': '9215',
'label': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'equipments': [],
'text_color': '',
'trip_short_name': '9215',
'commercial_mode': 'TGV Lyria',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Zuerich HB',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '224900',
'opening_time': '071500',
'commercial_mode': {'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
'id': 'line:SNCF:CSR:612200'},
'id': 'route:SNCF:CSR:612200'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:612200'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:9215:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:612200'},
{'type': 'commercial_mode', 'id': 'commercial_mode:LYR'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:LYR'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T141500',
'additional_informations': [],
'departure_date_time': '20221221T141500',
'base_arrival_date_time': '20221221T141500',
'base_departure_date_time': '20221221T141500',
'data_freshness': 'base_schedule'}},
14: {'display_informations': {'direction': 'Montpellier Saint-Roch (Montpellier)',
'code': '',
'network': 'OUIGO',
'links': [],
'color': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Montpellier Saint-Roch',
'physical_mode': 'Train grande vitesse',
'headsign': '7875',
'label': 'Paris Gare de Lyon Hall 1 &2 - Montpellier Saint-Roch',
'equipments': [],
'text_color': '',
'trip_short_name': '7875',
'commercial_mode': 'OUIGO',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'Paris Gare de Lyon Hall 1 &2 - Montpellier Saint-Roch',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Montpellier Saint-Roch',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '214600',
'opening_time': '061400',
'commercial_mode': {'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'},
'id': 'line:SNCF:CSR:633300'},
'id': 'route:SNCF:CSR:633300'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:633300'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:7875:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:633300'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TGVOUIGO'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:TGVOUIGO'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T143400',
'additional_informations': [],
'departure_date_time': '20221221T143400',
'base_arrival_date_time': '20221221T143400',
'base_departure_date_time': '20221221T143400',
'data_freshness': 'base_schedule'}},
15: {'display_informations': {'direction': 'Marseille Saint-Charles (Marseille)',
'code': '',
'network': 'OUIGO',
'links': [],
'color': '',
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '7827',
'label': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '7827',
'commercial_mode': 'OUIGO',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87751008'},
{'type': 'uic', 'value': '87751008'}],
'name': 'Marseille Saint-Charles',
'links': [],
'coord': {'lat': '43.302666', 'lon': '5.380407'},
'label': 'Marseille Saint-Charles (Marseille)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87751008'},
'quality': 0,
'name': 'Marseille Saint-Charles (Marseille)',
'id': 'stop_area:SNCF:87751008'},
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Marseille Saint-Charles - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '210200',
'opening_time': '055000',
'commercial_mode': {'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'},
'id': 'line:SNCF:CSR:633100'},
'id': 'route:SNCF:CSR:633100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:633100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:7827:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:633100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TGVOUIGO'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:TGVOUIGO'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T143900',
'additional_informations': [],
'departure_date_time': '20221221T143900',
'base_arrival_date_time': '20221221T143900',
'base_departure_date_time': '20221221T143900',
'data_freshness': 'base_schedule'}},
16: {'display_informations': {'direction': 'MILANO PORTA GARIBALDI (Milano)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'MILANO PORTA GARIBALDI - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '9249',
'label': 'MILANO PORTA GARIBALDI - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '9249',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'},
'quality': 0,
'name': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'id': 'stop_area:SNCF:87686006'},
'name': 'MILANO PORTA GARIBALDI - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:Coach', 'name': 'Autocar'},
{'id': 'physical_mode:LongDistanceTrain', 'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'MILANO PORTA GARIBALDI - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'},
{'id': 'physical_mode:Coach', 'name': 'Autocar'}],
'codes': [],
'closing_time': '233100',
'opening_time': '060000',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:641100'},
'id': 'route:SNCF:CSR:641100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:641100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:9249:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:641100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T144500',
'additional_informations': [],
'departure_date_time': '20221221T144500',
'base_arrival_date_time': '20221221T144500',
'base_departure_date_time': '20221221T144500',
'data_freshness': 'base_schedule'}},
17: {'display_informations': {'direction': 'Laroche - Migennes (Migennes)',
'code': '',
'network': 'TER',
'links': [],
'color': '',
'name': 'Paris Gdl - Laroche',
'physical_mode': 'TER / Intercités',
'headsign': '891009',
'label': 'Paris Gdl - Laroche',
'equipments': [],
'text_color': '',
'trip_short_name': '891009',
'commercial_mode': 'TER',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:TER',
'name': 'TER'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 11.9, 'unit': 'gEC/Km'},
'id': 'physical_mode:Train',
'name': 'TER / Intercités'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:Train',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87683268'},
{'type': 'uic', 'value': '87683268'}],
'name': 'Laroche - Migennes',
'links': [],
'coord': {'lat': '47.960998', 'lon': '3.513191'},
'label': 'Laroche - Migennes (Migennes)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87683268'},
'quality': 0,
'name': 'Laroche - Migennes (Migennes)',
'id': 'stop_area:SNCF:87683268'},
'name': 'Paris Gdl - Laroche',
'links': [],
'physical_modes': [{'id': 'physical_mode:Train',
'name': 'TER / Intercités'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gdl - Laroche',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:Train',
'name': 'TER / Intercités'}],
'codes': [],
'closing_time': '003100',
'opening_time': '041000',
'commercial_mode': {'id': 'commercial_mode:TER', 'name': 'TER'},
'id': 'line:SNCF:FR:Line::BE3E2DD5-0143-472B-9CE8-1601556F7950:'},
'id': 'route:SNCF:FR:Line::BE3E2DD5-0143-472B-9CE8-1601556F7950:'},
'links': [{'type': 'line',
'id': 'line:SNCF:FR:Line::BE3E2DD5-0143-472B-9CE8-1601556F7950:'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:891009:1187:Train'},
{'type': 'route',
'id': 'route:SNCF:FR:Line::BE3E2DD5-0143-472B-9CE8-1601556F7950:'},
{'type': 'commercial_mode', 'id': 'commercial_mode:TER'},
{'type': 'physical_mode', 'id': 'physical_mode:Train'},
{'type': 'network', 'id': 'network:SNCF:TER'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T144600',
'additional_informations': [],
'departure_date_time': '20221221T144600',
'base_arrival_date_time': '20221221T144600',
'base_departure_date_time': '20221221T144600',
'data_freshness': 'base_schedule'}},
18: {'display_informations': {'direction': 'Besançon Viotte (Besançon)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Besançon Viotte',
'physical_mode': 'Train grande vitesse',
'headsign': '6743',
'label': 'Paris Gare de Lyon Hall 1 &2 - Besançon Viotte',
'equipments': [],
'text_color': '',
'trip_short_name': '6743',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '87718007'},
{'type': 'uic', 'value': '87718007'}],
'name': 'Besançon Viotte',
'links': [],
'coord': {'lat': '47.247049', 'lon': '6.021943'},
'label': 'Besançon Viotte (Besançon)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87718007'},
'quality': 0,
'name': 'Besançon Viotte (Besançon)',
'id': 'stop_area:SNCF:87718007'},
'name': 'Paris Gare de Lyon Hall 1 &2 - Besançon Viotte',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Paris Gare de Lyon Hall 1 &2 - Besançon Viotte',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '235400',
'opening_time': '053200',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:611100'},
'id': 'route:SNCF:CSR:611100'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:611100'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:6743:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:611100'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T144900',
'additional_informations': [],
'departure_date_time': '20221221T144900',
'base_arrival_date_time': '20221221T144900',
'base_departure_date_time': '20221221T144900',
'data_freshness': 'base_schedule'}},
19: {'display_informations': {'direction': 'Barcelone-Sants (Barcelona)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Barcelone-Sants - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '9715',
'label': 'Barcelone-Sants - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '9715',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'source', 'value': '71718010'},
{'type': 'uic', 'value': '71718010'}],
'name': 'Barcelone-Sants',
'links': [],
'coord': {'lat': '41.378961', 'lon': '2.139834'},
'label': 'Barcelone-Sants (Barcelona)',
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:71718010'},
'quality': 0,
'name': 'Barcelone-Sants (Barcelona)',
'id': 'stop_area:SNCF:71718010'},
'name': 'Barcelone-Sants - Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'is_frequence': 'False',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'direction_type': 'forward',
'line': {'code': '',
'name': 'Barcelone-Sants - Paris Gare de Lyon Hall 1 &2',
'links': [],
'color': '',
'geojson': {'type': 'MultiLineString', 'coordinates': []},
'text_color': '',
'physical_modes': [{'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'codes': [],
'closing_time': '212500',
'opening_time': '093800',
'commercial_mode': {'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
'id': 'line:SNCF:CSR:802101'},
'id': 'route:SNCF:CSR:802101'},
'links': [{'type': 'line', 'id': 'line:SNCF:CSR:802101'},
{'type': 'vehicle_journey',
'id': 'vehicle_journey:SNCF:2022-12-21:9715:1187:LongDistanceTrain'},
{'type': 'route', 'id': 'route:SNCF:CSR:802101'},
{'type': 'commercial_mode', 'id': 'commercial_mode:OUI'},
{'type': 'physical_mode', 'id': 'physical_mode:LongDistanceTrain'},
{'type': 'network', 'id': 'network:SNCF:OUI'}],
'stop_date_time': {'links': [],
'arrival_date_time': '20221221T145400',
'additional_informations': [],
'departure_date_time': '20221221T145400',
'base_arrival_date_time': '20221221T145400',
'base_departure_date_time': '20221221T145400',
'data_freshness': 'base_schedule'}},
20: {'display_informations': {'direction': 'Lyon Perrache (Lyon)',
'code': '',
'network': 'TGV INOUI',
'links': [],
'color': '',
'name': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'physical_mode': 'Train grande vitesse',
'headsign': '6619',
'label': 'Lyon Perrache - Paris Gare de Lyon Hall 1 &2',
'equipments': [],
'text_color': '',
'trip_short_name': '6619',
'commercial_mode': 'TGV INOUI',
'description': ''},
'stop_point': {'commercial_modes': [{'id': 'commercial_mode:ELI',
'name': 'RENFE SNCF'},
{'id': 'commercial_mode:LYR', 'name': 'TGV Lyria'},
{'id': 'commercial_mode:OUI', 'name': 'TGV INOUI'},
{'id': 'commercial_mode:OUIGO_TC', 'name': 'OUIGO Train Classique'},
{'id': 'commercial_mode:SNF', 'name': 'SNCF'},
{'id': 'commercial_mode:TER', 'name': 'TER'},
{'id': 'commercial_mode:TGVOUIGO', 'name': 'OUIGO'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'physical_modes': [{'co2_emission_rate': {'value': 2.36, 'unit': 'gEC/Km'},
'id': 'physical_mode:LongDistanceTrain',
'name': 'Train grande vitesse'}],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'equipments': [],
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'id': 'stop_point:SNCF:87686006:LongDistanceTrain',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',
'administrative_regions': [{'insee': '75056',
'name': 'Paris',
'level': 8,
'coord': {'lat': '48.8534951', 'lon': '2.3483915'},
'label': 'Paris (75000-75116)',
'id': 'admin:fr:75056',
'zip_code': '75000;75116'}],
'timezone': 'Europe/Paris',
'id': 'stop_area:SNCF:87686006'}},
'route': {'direction': {'embedded_type': 'stop_area',
'stop_area': {'codes': [{'type': 'secondary_id', 'value': 'SNCF:87686030'},
{'type': 'secondary_id', 'value': 'SNCF:87758581'},
{'type': 'source', 'value': '87686006'},
{'type': 'source', 'value': '87686030'},
{'type': 'source', 'value': '87758581'},
{'type': 'uic', 'value': '87686006'},
{'type': 'uic', 'value': '87686030'},
{'type': 'uic', 'value': '87758581'}],
'name': 'Paris Gare de Lyon Hall 1 &2',
'links': [],
'coord': {'lat': '48.844945', 'lon': '2.373481'},
'label': 'Paris Gare de Lyon Hall 1 &2 (Paris)',