В моем коде ниже последний цикл определяет, есть ли совпадение или нет. Если есть совпадение, я хотел бы вернуть название дорожки, если они не совпадают, я хотел бы вернуться жВозвращаемые значения с помощью оператора else
import requests
import json
# initial message
message = "if i can\'t let it go out of my mind"
# split into list
split_message = message.split()
def decrementList(words):
for w in [words] + [words[:-x] for x in range(1,len(words))]:
url = 'http://ws.spotify.com/search/1/track.json?q='
request = requests.get(url + "%20".join(w))
json_dict = json.loads(request.content)
num_results = json_dict['info']['num_results']
if num_results > 0:
num_removed = len(words) - len(w)
track_title = ' '.join(words)
#track_title = "If I Can't Take It with Me"
for value in json_dict["tracks"]:
if value["name"] == track_title:
return track_title
else:
return w
return num_removed, json_dict, track_title, w
num_words_removed, json_dict, track_title, w = decrementList(split_message)
К сожалению, это не мое идеальное решение. Я бы очень хотел перепрограммировать сокращенный список слов до тех пор, пока не будет найден трек. Я пробовал:
for value in json_dict["tracks"]:
if value["name"] == track_title:
return track_title
else:
decrementList(w)
Но, у меня есть какой-то бесконечный цикл и тайм-аут мой запрос. Это имеет смысл в моей голове. Если нет соответствия треков, возьмите сокращенный список, сохраненный в «w», и повторите его через функцию декремента.
Итак, у меня есть два вопроса. Как я могу вернуть два значения в инструкции else, и как я могу повторно запустить сокращенный список до тех пор, пока не найду соответствие трека.
Вы, конечно, можете удалить строку 'если значение ...' также получить результаты, которые точно не начинаются с формулировкой сокращенного запроса. Таким образом, вы также получите «Если я не могу взять его со мной». – Alfe
привет, спасибо за это. несколько деталей меня путают. я посмотрю, хотя! – metersk