Таким образом, для задания мне было поручено создать программу, которая отображает информацию о поездах в реальном времени на основе данных, введенных пользователем (станция, с которой они хотят идти, станция, на которую они хотят идти, дата и время).Когда эта информация собрана и проанализирована в API, я собираю такие данные, как номер платформы, время отправления, железнодорожная компания и т. Д., И помещаю каждое значение в свой собственный список в своей собственной позиции индекса (например, каждый номер платформы будетвойдите в список с именем platformnumber, в его собственной позиции ['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 '] [«Юго-Западная железная дорога», «Юго-Западная железная дорога», «Юго-Западная железная дорога», «Юго-Западная железная дорога», «Юго-Западная железная дорога», «Юго-Западная железная дорога»] Услуга «Лондон Ватерлоо».