@TheArtem642

API Яндекс расписании, при запуске показывает какие поезда прибывают только с 00:00 до 07:06. Почему так проиходит?

При запуске скрипта на python он показывает какие поезда прибывают только с 00:00 до 07:06 на Белорусском вокзале Москвы, хотя после 07:06 поезда тоже есть
import requests
from datetime import date, datetime
import pytz

station_id = "s2000006"

# Получаем текущую дату и время
current_datetime = datetime.now()

# Форматируем дату и время в нужный формат (год-месяц-деньTчасы:минуты)
formatted_datetime = current_datetime.strftime("%Y-%m-%dT%H:%M")

# Формируем URL для запроса к API с текущей датой и временем
url = f'https://api.rasp.yandex.net/v3.0/schedule/?apikey=MYapi&station={station_id}&format=json&lang=ru_RU&date={formatted_datetime}&event=arrival'

# Отправляем GET-запрос к API
response = requests.get(url)

# Проверяем статус код ответа
if response.status_code == 200:
    # Получаем данные расписания в формате JSON
    schedule_data = response.json()

    # Устанавливаем часовой пояс
    local_timezone = pytz.timezone('Europe/Moscow')
    
    # Парсим данные расписания
    for arrival in schedule_data['schedule']:
        arrival_time = datetime.fromisoformat(arrival['arrival'])
        
        # Преобразуем время в местное
        local_arrival_time = arrival_time.astimezone(local_timezone)
        
        train_name = arrival['thread']['number']
        train_route = arrival['thread']['title']
        
        # Форматируем время в нужный формат (часы и минуты)
        formatted_arrival_time = local_arrival_time.strftime("%H:%M")
        
        print(f"Прибытие: {formatted_arrival_time}, Поезд: {train_name}, Маршрут: {train_route}")
else:
    print(response.status_code)
    print(response.content)

64ff22fb1d54c896963900.jpeg
  • Вопрос задан
  • 265 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Количество рейсов, отображаемых на одной странице — не более 100. Информация об общем количестве полученных рейсов указана в ответе в элементе total элемента pagination.


Достаете total из pagination, целочисленно делите на лимит (100), прибавляете 1, и делаете цикл, в котором увеличиваете каждую итерацию параметр offset на 100
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы