Попытка получить порядок столбцов, идентичный порядку ключей в первом параметре (python)

#python

Вопрос:

Мое задание таково:

Определите функцию с именем save_data с тремя параметрами. Первый параметр-это список строк (ключи, о которых мы заботимся). Вторым параметром будет список словарей, а последним параметром будет имя файла (строка). Эта функция должна открыть файл, указанный в третьем параметре, чтобы удалить содержимое файла. Убедитесь, что вы записали в файл, чтобы он был правильным CSV-файлом. Первой строкой для записи в файл будет содержимое первого параметра. (Вы МОЖЕТЕ предположить, что первый параметр не будет пустым, и вы МОЖЕТЕ предположить, что все словари будут содержать записи в первом параметре в качестве ключей.) Для каждого словаря во втором параметре необходимо записать значения, связанные с этими ключами (и только с этими ключами), в виде строки в файле. Порядок столбцов должен совпадать с порядком ключей в первом параметре. Порядок строк должен совпадать с порядком, в котором словари отображаются во втором параметре.

Например, если dl = [{«дата»: «07-31-2021», «местоположение»: «Нью-Йорк», «поддельные»: «данные»}, {«местоположение»: «Нью-Джерси», «дата»: «08-01-2021»}] Затем вызов save_data([‘дата’, ‘местоположение’], dl, ‘bore.csv’) приведет к тому, что файл с именем bore.csv будет содержать следующее содержимое:

дата,место

07-31-2021,Нью-Йорк

08-01-2021,Нью-Джерси

Моя текущая проблема заключается в попытке сопоставить столбцы с порядком списка в первом параметре. Мой текущий код:

 def write_values (csvfile, list1):  with open (csvfile, "a") as f:  writer = csv.writer(f)   for i in range(len(list1)):   writer.writerow(list1[i])   def save_data (keys,lod,csvfile):  outside = []  for i in lod:   inside = []  for eachkey in i:   if eachkey == keys[0]:   inside.append (i[eachkey])  elif eachkey == keys[1]:   inside.append (i[eachkey])  outside.append(inside)  with open (csvfile, "a") as f: # writes header.  write = csv.writer(f)  write.writerow(keys)  write_values (csvfile,outside) # writes the rest.   return outside