Here is a possible solution using the DataFrame.apply() and pd.Series and a strategy from Splitting dictionary/list inside a Pandas Column into Separate Columns
import pandas as pd
d = {'col1': [[{'rating': 5, 'ratingLabel': 'Legroom'},
               {'rating': 5, 'ratingLabel': 'Seat comfort'},
               {'rating': 5, 'ratingLabel': 'In-flight Entertainment'}],
              [{'rating': 5, 'ratingLabel': 'Legroom'},
               {'rating': 5, 'ratingLabel': 'Seat comfort'},
               {'rating': 5, 'ratingLabel': 'In-flight Entertainment'}],
              'Nan']}
df = pd.DataFrame(data=d)
df
df_split = df['col1'].apply(pd.Series)
pd.concat([df,
           df_split[0].apply(pd.Series).rename(columns = {'rating':'legroom_rating',
                                                          'ratingLabel':'1'}),
           df_split[1].apply(pd.Series).rename(columns = {'rating':'seat_comfort_rating',
                                                         'ratingLabel':'2'}),
           df_split[2].apply(pd.Series).rename(columns = {'rating':'in_flight_entertainment_rating',
                                                         'ratingLabel':'3'})],
           axis = 1).drop(['col1','1','2','3',0],
                         axis = 1)
Producing the following DataFrame
