Итак, для задания мне было поручено создать программу, которая отображает информацию о поезде в реальном времени на основе данных, введенных пользователем (станция, с которой он хочет отправиться, станция, на которую он хочет пойти, дата и время). Когда эта информация собирается и анализируется в API, я беру такие данные, как номер платформы, время отправления, железнодорожная компания и т. д., и помещаю каждое значение в свой собственный список в своей позиции индекса (например, каждый номер платформы будет перейти в список под названием номер_платформы в своей собственной позиции ['2', '12', '4']).
Как только у меня есть все эти данные в списках, из-за того, как я их запрограммировал, все данные с индексом [0] во всех списках совпадают вместе, то же самое с индексом [1] и так далее. Моя проблема в том, что мне нужно, чтобы эти данные отображались на моей HTML-странице, при этом каждый поезд показывал номер платформы, имя оператора и время отправления на своей СОБСТВЕННОЙ линии. Ниже приведен код, который у меня есть, и скриншот того, как далеко я продвинулся.
Мне удалось продвинуться так далеко, прокручивая список платформ и создавая новый абзац для каждой платформы (всегда будет столько же платформ, сколько и поездов), что хорошо, потому что у меня есть нужное количество строк, которые мне нужны. Однако, поскольку остальные мои данные также находятся в списках, я не могу просто добавлять циклы внутри циклов, чтобы получить данные. Это моя проблема.
Ниже приведен код, который я использую для хранения значений из API в списках. Это сохраняет данные каждого поезда в своей собственной позиции индекса в каждом списке (скажем, все данные первого поезда будут в индексе 0 каждого списка). (некоторые из переменных здесь вы можете игнорировать, поскольку они не имеют отношения к этой проблеме)
date = parsed["date"]
stationname = parsed["station_name"]
time = parsed["time_of_day"]
departures = parsed["departures"]
platformnumber = []
destinationstation = parsed["departures"]["all"][0]["destination_name"]
operatorname = []
departuretime = []
trainuid = []
for i in departures["all"]:
for k, v in i.items():
if k == "platform":
platformnumber.append(v)
elif k == "aimed_departure_time":
departuretime.append(v)
elif k == "operator_name":
operatorname.append(v)
elif k == "train_uid":
trainuid.append(v)
return render_template('timetable.html', date=date, station=stationname, time=time, destination=destinationstation, operator=operatorname,departuretime=departuretime, platform=platformnumber, liveoperatorname=liveoperatorname, livedeparturetime=livedeparturetime, liveplatformnumber=liveplatformnumber, livedestination=livedestination, callingat=destination)
Вот мой код Jinja 2/HTML, который у меня есть. Надеюсь, вы видите, что я пытаюсь сделать, и почему я застреваю.
{% for a in platform %}
<li>Platform {{a}} For The {{departuretime}} {{operator}} Service To {{destination}}</li>
{% endfor %}
Я хочу, чтобы для каждого поезда была строка, похожая на:
Платформа 12 для отправления Юго-Западной железной дороги в 14:25 до Лондона Ватерлоо.
Но вместо этого он отображается так, так как я не знаю, как получить данные из других списков (строка ниже напечатана для количества платформ, которые есть в списке, что совпадает с количеством поездов, поскольку каждый поезд имеет платформа).
Платформа 2 Для ['12:22', '12:59', '13:05', '13:22', '13:59', '14:05'] ['Юго-Западная железная дорога', 'Южная Западная железная дорога», «Юго-Западная железная дорога», «Юго-Западная железная дорога», «Юго-Западная железная дорога», «Юго-Западная железная дорога»] Служба в Лондон Ватерлоо.