Как можно вывести только те данные, которые актуальны сейчас?
Простите за глупый вопрос. Как можно сделать, чтобы при выводе данных я получал только данные, которые были бы актуальны на данный момент, т.е. отправление и пребывание поездов за этот день, но время которых уже прошло мне не нужно. Нужны только данные актуальные, с этой таблицы https://voronezhvokzal.ru/raspisanie-poezdov/
код:
current_date = date.today()
link = f"https://api.rasp.yandex.net/v3.0/schedule/?apikey=f3a6c277-5bcc-48d9-95ed-6373ba1b6fa5&station=s2014001&transport_types=train,suburban&direction=departure&date={current_date}"
r = requests.get(link)
trains = json.loads(r.text)
for train in trains["schedule"]:
print(f"Станция: {trains['station']['title']}")
print(f"Отправка в {train['departure']}")
print(f"Номер поезда: {train['thread']['number']}")
print(f"Направление: {train['thread']['title']}\n")
link = f"https://api.rasp.yandex.net/v3.0/schedule/?apikey=f3a6c277-5bcc-48d9-95ed-6373ba1b6fa5&station=s2014001&transport_types=train,suburban&event=arrival&date={current_date}"
r = requests.get(link)
trains = json.loads(r.text)
for train in trains["schedule"]:
print(f"Станция: {trains['station']['title']}")
print(f"Прибытие в: {train['arrival']}")
print(f"Номер поезда: {train['thread']['number']}")
print(f"Направление: {train['thread']['title']}\n")
Я так понимаю, что нужно использовать Модуль Datetime. Я читал документацию, но не понял как мне это сделать. Часовой пояс в Json 2021-01-19T19:20:00+03:00
Ответы (1 шт):
Значения в train['departure'] и train['arrival'] являются строками и их можно привести к типу datetime.
После, значения можно сравнить с текущим временем и не показывать те, что наступили раньше.
Пример:
import datetime as DT
import requests
current_date = DT.date.today()
link = f"https://api.rasp.yandex.net/v3.0/schedule/?apikey=f3a6c277-5bcc-48d9-95ed-6373ba1b6fa5&station=s2014001&transport_types=train,suburban&direction=departure&date={current_date}"
r = requests.get(link)
trains = r.json()
for train in trains["schedule"]:
departure = train['departure']
departure = DT.datetime.fromisoformat(departure)
if departure < DT.datetime.now(departure.tzinfo):
continue
print(f"Станция: {trains['station']['title']}")
print(f"Отправка в {departure}")
print(f"Номер поезда: {train['thread']['number']}")
print(f"Направление: {train['thread']['title']}\n")
print('\n' + '-' * 100 + '\n')
link = f"https://api.rasp.yandex.net/v3.0/schedule/?apikey=f3a6c277-5bcc-48d9-95ed-6373ba1b6fa5&station=s2014001&transport_types=train,suburban&event=arrival&date={current_date}"
r = requests.get(link)
trains = r.json()
for train in trains["schedule"]:
arrival = train['arrival']
arrival = DT.datetime.fromisoformat(arrival)
if arrival < DT.datetime.now(arrival.tzinfo):
continue
print(f"Станция: {trains['station']['title']}")
print(f"Прибытие в: {arrival}")
print(f"Номер поезда: {train['thread']['number']}")
print(f"Направление: {train['thread']['title']}\n")