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')
../_images/TD2A_eco_API_SNCF_corrige_11_1.png

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)',