Я не знаю о модуле spotipy, поэтому мне придется принять несколько вещей, основываясь на том, что вы сказали, работает или не работает.
Итак ... ваша переменная с именем 'result Кажется, ведет себя как словарь. Вы можете индексировать его ключами («дорожки», «предметы») (как показано там: result['tracks']['items']
), и это, кажется, возвращает вам вещи, которые ведут себя как список, содержащий вещи, которые ведут себя как словарь, что среди других В вещах содержится ключ «имя» (как показано там: t['name']
).
Чтобы проиллюстрировать, как работает enumerate
, вот пример:
>>> hello = ['h', 'e', 'l', 'l', 'o']
>>> print(list(enumerate(hello)))
[(0, 'h'), (1, 'e'), (2, 'l'), (3, 'l'), (4, 'o')]
По сути, он возвращает вам кортежи каждого индекса в списке и то, что находится в этом индексе.
Также обратите внимание, что у Python есть принцип, называемый «утки». В нем говорится: «Если это похоже на утку и крякает как утка, значит, это утка». Вот почему я не очень беспокоюсь о том, какой тип объекта, меня волнует, как он себя ведет.
Теперь, когда вы говорите что-то вроде:
for index, element in enumerate(elements):
Вы Используете то, что называется распаковка. Он позволяет вам разделить кортежи, которые enumerate
дает вам, на две переменные.
Тогда, если мы хотим просто сделать print(result)
, класс, который позволяет вам создавать результат, должен будет реализовать либо __repr__
, либо __str__
методы. В нем вы будете иметь все логи c, которые содержатся в вашем файле для l oop, собирая данные по соответствующим ключам в словарном объекте и возвращая правильно отформатированную строку. Но похоже, что этот класс взят из внешней библиотеки, поэтому я не уверен, что было бы неплохо реализовать их самостоятельно (у меня пока нет опыта в этом).
Надеюсь, что мои объяснения были хотя бы немного полезны.