Цикл по данным JSON внутри шаблона Django - PullRequest
0 голосов
/ 02 ноября 2019

Я хочу просмотреть эти данные Json в моем шаблоне Django. Хотя я этого добился, но у меня есть какой-то похожий массив, который мне трудно перебрать из-за сходства в их названии. Как у меня есть два сегмента flight.

enter image description here

[{'type': 'flight-offer', 'id': '1572710950059-668908355', 'offerItems': [{'services': [{'segments': [{'flightSegment': {'departure': {'iataCode': 'LOS', 'terminal': 'I', 'at': '2020-01-01T00:40:00+01:00'}, 'arrival': {'iataCode': 'JFK', 'terminal': '4', 'at': '2020-01-01T06:32:00-05:00'}, 'carrierCode': 'DL', 'number': '219', 'aircraft': {'code': '332'}, 'operating': {'carrierCode': 'DL', 'number': '219'}, 'duration': '0DT11H52M'}, 'pricingDetailPerAdult': {'travelClass': 'ECONOMY', 'fareClass': 'U', 'availability': 9, 'fareBasis': 'UL10J3M2'}}]}, {'segments': [{'flightSegment': {'departure': {'iataCode': 'LGA', 'terminal': 'D', 'at': '2020-02-02T19:00:00-05:00'}, 'arrival': {'iataCode': 'ATL', 'terminal': 'S', 'at': '2020-02-02T21:41:00-05:00'}, 'carrierCode': 'DL', 'number': '2778', 'aircraft': {'code': '321'}, 'operating': {'carrierCode': 'DL', 'number': '2778'}, 'duration': '0DT2H41M'}, 'pricingDetailPerAdult': {'travelClass': 'ECONOMY', 'fareClass': 'T', 'availability': 9, 'fareBasis': 'TL10J3M3'}}, {'flightSegment': {'departure': {'iataCode': 'ATL', 'terminal': 'I', 'at': '2020-02-02T22:25:00-05:00'}, 'arrival': {'iataCode': 'LOS', 'terminal': 'I', 'at': '2020-02-03T15:10:00+01:00'}, 'carrierCode': 'DL', 'number': '54', 'aircraft': {'code': '332'}, 'operating': {'carrierCode': 'DL', 'number': '54'}, 'duration': '0DT10H45M'}, 'pricingDetailPerAdult': {'travelClass': 'ECONOMY', 'fareClass': 'T', 'availability': 9, 'fareBasis': 'TL10J3M3'}}]}], 'price': {'total': '1415.86', 'totalTaxes': '623.86'}, 'pricePerAdult': {'total': '1415.86', 'totalTaxes': '623.86'}}]},

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

Передайте данные JSON в шаблон. Предположим, что имя является данными. В функции представлений передайте контекст как:

context['data'] = data

Передайте этот контекст вашему шаблону. Теперь внутри шаблона, итерация

{% for datum in data %}
    {{ datum.field}}<br>
{% endfor %}

Доступ к словарю внутри словаря путем объединения оператора точки. Надеюсь, это поможет.

0 голосов
/ 02 ноября 2019
json= {'segments': [{'flightSegment': {'departure': {'iataCode': 'JFK', 'terminal': '4', 'at': '2020-02-02T19:31:00-05:00'}, 'arrival': {'iataCode': 'AMS', 'at': '2020-02-03T09:10:00+01:00'}, 'carrierCode': 'KL', 'number': '6007', 'aircraft': {'code': '76W'}, 'operating': {'carrierCode': 'DL', 'number': '6007'}, 'duration': '0DT7H39M'}, 'pricingDetailPerAdult': {'travelClass': 'ECONOMY', 'fareClass': 'N', 'availability': 9, 'fareBasis': 'NLSRNG'}}, {'flightSegment': {'departure': {'iataCode': 'AMS', 'at': '2020-02-03T10:20:00+01:00'}, 'arrival': {'iataCode': 'CDG', 'terminal': '2F', 'at': '2020-02-03T11:45:00+01:00'}, 'carrierCode': 'KL', 'number': '2007', 'aircraft': {'code': '321'}, 'operating': {'carrierCode': 'AF', 'number': '2007'}, 'duration': '0DT1H25M'}, 'pricingDetailPerAdult': {'travelClass': 'ECONOMY', 'fareClass': 'L', 'availability': 9, 'fareBasis': 'NLSRNG'}}, {'flightSegment': {'departure': {'iataCode': 'CDG', 'terminal': '2E', 'at': '2020-02-03T13:15:00+01:00'}, 'arrival': {'iataCode': 'ABV', 'at': '2020-02-03T19:20:00+01:00'}, 'carrierCode': 'KL', 'number': '2054', 'aircraft': {'code': '332'}, 'operating': {'carrierCode': 'AF', 'number': '2054'}, 'duration': '0DT6H5M'}, 'pricingDetailPerAdult': {'travelClass': 'ECONOMY', 'fareClass': 'N', 'availability': 9, 'fareBasis': 'NLSRNG'}}]} 

for x in json.get("segments"):
  print(x.get("flightSegment").get("departure").get("iataCode"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...