У меня есть список упорядоченных словарей.
Я хочу задать первое значение каждого словаря как ключ, а сам словарь - значение (включая имя) и вернуть новый список.
data = [
OrderedDict(
[('Name', 'Tel saki'), ('Area', '210'), ('Latitude', 32.866477), ('Longitude', 35.830773), ('elevation', 481),
('date_added', '13-03-2020')]),
OrderedDict(
[('Name', 'Mitzphe shelagim'), ('Area', '210'), ('Latitude', 33.30445), ('Longitude', 35.797814),
('elevation', 2110), ('date_added', '29-03-2020')]), OrderedDict(
[('Name', 'Mitzphe adi'), ('Area', '769'), ('Latitude', 33.2253981), ('Longitude', 35.5495681),
('elevation', 680),
('date_added', '17-03-2020')]),
OrderedDict(
[('Name', 'Nhahal Oz'), ('Area', '300'), ('Latitude', 31.4762228), ('Longitude', 34.4974832),
('elevation', 68),
('date_added', '30-03-2020')]),
OrderedDict(
[('Name', '105'), ('Area', '210'), ('Latitude', 33.220439), ('Longitude', 35.808097), ('elevation', 1127),
('date_added', '07-04-2020')]),
OrderedDict(
[('Name', 'Ifthah'), ('Area', '300'), ('Latitude', 31.5487777), ('Longitude', 34.4873539), ('elevation', 29),
('date_added', '08-04-2020')])]
Мой код:
class RepackDictionaries:
index = 0
@classmethod
def return_values_lists(cls):
while cls.index < len(data):
names = list(data[cls.index].values())[0]
data_sets = [data[cls.index].values()]
cls.index += 1
return names, data_sets
@classmethod
def create_new_dicts(cls):
names, data_sets = cls.return_values_lists()
data = list(zip(names, data_sets))
while cls.index < len(data):
final_list = {name: data_set for name, data_set in data}
cls.index += 1
return final_list
if __name__ == '__main__':
print(RepackDictionaries.create_new_dicts())
Что выводит на None, и я не могу понять, почему.