Петли | список | добыча - PullRequest
       8

Петли | список | добыча

0 голосов
/ 09 января 2020

Я пытаюсь импортировать некоторые элементы из файла, поработать с ними и распечатать результаты [извлечь в файл в будущем] в виде списка. Поскольку я нарушаю код мир, я получаю всю информацию, которая мне нужна, но когда я пытаюсь извлечь всю информацию сразу с помощью al oop, я получаю это:

spotify:track:0PJ4RVL5wCeHDO8wHpk3YG
t
0 K S s
1 n t p
2 a e o
3 s v t

L oop breaks слово [последний элемент списка] буквой

Я использую несколько циклов, есть некоторые идентификаторы, которые я не знаю, как прикрепить необходимую информацию к этим идентификаторам

import spotipy
import openpyxl
import pandas as pd
import xlsxwriter
import xlrd
from spotipy.oauth2 import SpotifyClientCredentials

path = "C:\\Users\\Karolis\\Desktop\\Python\\Failai\\Gabalai.xlsx"
wb = xlrd.open_workbook(path)
sheet = wb.sheet_by_index(0)
sheet2 = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
sheet2.cell_value(0, 0)
client_id = ''
client_secret = ''

for ix in range(sheet.nrows):
    title = (sheet.cell_value(ix, 0))
    artist = (sheet2.cell_value(ix, 1))

# cia apacioj istraukia gabalo uri
client_credentials_manager = SpotifyClientCredentials(client_id=client_id, client_secret=client_secret)
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
sp.trace = False
search_query = title + ' ' + artist
result = sp.search(search_query)
for i in result['tracks']['items']:
    # Find a songh that matches title and artist
    if (i['artists'][0]['name'] == artist) and (i['name'] == title):
        uri = (i['uri'])
        break
else:
    try:
        # Just take the first song returned by the search (might be named differently)
        print(result['tracks']['items'][0]['uri'])
    except:
        # No results for artist and title
        print("Cannot Find URI")

# cia apacioj istraukia gabalo info pagal jo uri
uri = (i['uri'])

client_credentials_manager = SpotifyClientCredentials(client_id=client_id, client_secret=client_secret)
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
sp.trace = False
features = sp.audio_features(uri)

for p in range(len(title)):
    print(p, artist[p], title[p],uri[p])

book1.close()

Я новичок в программировании, и на данный момент я совершенно потерян.

Спасибо за предоставленную помощь

1 Ответ

0 голосов
/ 09 января 2020

Ваш последний l oop,

for p in range(len(title)):
    print(p, artist[p], title[p],uri[p])

явно печатает каждый символ художника, названия и uri. Я думаю, что вы имеете в виду циклический просмотр списка заголовков и индексацию по спискам исполнителей, заголовков и юрисдикций, но вместо этого вы циклически проходите по длине строки и индексируете по строкам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...