I’d like to turn the following list in a dictionary:
detail_flights = ['17:20 – 19:00nMXP Aeroporto Malpensan‐nBCN Barcellona-El Pratndiretton1h 40mn6:20 – 8:00nBCN Barcellona-El Pratn‐nBGY Bergamo Orio al Seriondiretton1h 40m', '17:20 – 19:00nMXP Aeroporto Malpensan‐nBCN Barcellona-El Pratndiretton1h 40mn11:35 – 13:05nBCN Barcellona-El Pratn‐nMXP Aeroporto Malpensandiretton1h 30m', '17:20 – 19:00nMXP Aeroporto Malpensan‐nBCN Barcellona-El Pratndiretton1h 40mn12:05 – 13:45nBCN Barcellona-El Pratn‐nBGY Bergamo Orio al Seriondiretton1h 40m', '17:20 – 19:00nMXP Aeroporto Malpensan‐nBCN Barcellona-El Pratndiretton1h 40mn20:15 – 21:55nBCN Barcellona-El Pratn‐nBGY Bergamo Orio al Seriondiretton1h 40m]
I’d like to add the following headers. Each element of the list needs to have its own header.
detail_headers = ['departure_time', 'departure_airport', 'to_delete', 'arrival_airport', 'type_flight', 'duration']
This is my code:
num = len(detail_flights)
num_detail_headers = detail_headers*num
from itertools import zip_longest
new_detail_flights = detail_flights[0].split("n")
dictionary = dict(zip(num_detail_headers , new_detail_flights ))
print(dictionary)
And the following is my output. I obtain the dictionary only for the first element of the list and I can’t understand why.
{'departure_time': '6:20 – 8:00', 'departure_airport': 'BCN Barcellona-El Prat', 'to_delete': '‐', 'arrival_airport': 'BGY Bergamo Orio al Serio', 'type_flight': 'diretto', 'duration': '1h 40m'}
Advertisement
Answer
the line
new_detail_flights = detail_flights[0].split("n")
only take the first element.
To take all element, you can do :
from itertools import zip_longest
detail_flights = ['17:20 – 19:00nMXP Aeroporto Malpensan‐nBCN Barcellona-El Pratndiretton1h 40mn6:20 – 8:00nBCN Barcellona-El Pratn‐nBGY Bergamo Orio al Seriondiretton1h 40m',
'17:20 – 19:00nMXP Aeroporto Malpensan‐nBCN Barcellona-El Pratndiretton1h 40mn11:35 – 13:05nBCN Barcellona-El Pratn‐nMXP Aeroporto Malpensandiretton1h 30m',
'17:20 – 19:00nMXP Aeroporto Malpensan‐nBCN Barcellona-El Pratndiretton1h 40mn12:05 – 13:45nBCN Barcellona-El Pratn‐nBGY Bergamo Orio al Seriondiretton1h 40m',
'17:20 – 19:00nMXP Aeroporto Malpensan‐nBCN Barcellona-El Pratndiretton1h 40mn20:15 – 21:55nBCN Barcellona-El Pratn‐nBGY Bergamo Orio al Seriondiretton1h 40m']
detail_headers = ['departure_time', 'departure_airport', 'to_delete', 'arrival_airport', 'type_flight', 'duration']
new_detail_flights = []
for flight in detail_flights:
new_detail_flights.append(dict(zip(detail_headers , flight.split("n"))))
print(new_detail_flights)
witch output :
[
{
'departure_time': '17:20 – 19:00',
'departure_airport': 'MXP Aeroporto Malpensa',
'to_delete': '‐',
'arrival_airport': 'BCN Barcellona-El Prat',
'type_flight': 'diretto',
'duration': '1h 40m'
},
{
'departure_time': '17:20 – 19:00',
'departure_airport': 'MXP Aeroporto Malpensa',
'to_delete': '‐',
'arrival_airport': 'BCN Barcellona-El Prat',
'type_flight': 'diretto',
'duration': '1h 40m'
},
{
'departure_time': '17:20 – 19:00',
'departure_airport': 'MXP Aeroporto Malpensa',
'to_delete': '‐',
'arrival_airport': 'BCN Barcellona-El Prat',
'type_flight': 'diretto',
'duration': '1h 40m'
},
{
'departure_time': '17:20 – 19:00',
'departure_airport': 'MXP Aeroporto Malpensa',
'to_delete': '‐',
'arrival_airport': 'BCN Barcellona-El Prat',
'type_flight': 'diretto',
'duration': '1h 40m'
}
]