Я пытаюсь написать небольшой скрипт для взаимодействия с API Last.fm.
У меня есть небольшой опыт работы с ElementTree, но способ, которым я его использовал раньше, похоже, не работает, вместо этого он возвращает пустое list.
Я удалил ключ API, так как не знаю точно, насколько он должен быть конфиденциальным, и привел пример XML, который я получаю вместо него.
Класс для взаимодействия с API:
from xml.etree import ElementTree
import urllib
import urllib2
class Last_fmWrapper(object):
def __init__(self):
self.last_fm_api_key = '*****************************'
self.api_url = 'http://ws.audioscrobbler.com/2.0/'
def get_now_playing(self, last_fm_user, method):
self.last_fm_user = last_fm_user
self.method = method
parameters = {'user':self.last_fm_user, 'api_key':self.last_fm_api_key, 'method':self.method}
encoded_parameters = urllib.urlencode(parameters)
request = urllib2.Request(self.api_url, encoded_parameters)
response = urllib2.urlopen(request)
api_results = ElementTree.parse(response).findall('track')
# why does api_results == []?
def compare_tasteometer(self):
pass
def register_user(self):
pass
Вызов метода get_now_playing функции Last_fmWrapper():
from last_fm_wrapper import Last_fmWrapper
last_fm = Last_fmWrapper()
now_playing = last_fm.get_now_playing('BiriBiriRG', 'user.getRecentTracks')
if now_playing == None:
print 'You not currently playing anything.'
else:
print 'You are now playing {}'.format(now_playing)
Пример полученного мной XML-файла:
Elvis Presley
Thrill Of Your Love
1
Love Songs
http://www.last.fm/music/Elvis+Presley/ ... +Your+Love
http://userserve-ak.last.fm/serve/34s/69037914.png
http://userserve-ak.last.fm/serve/64s/69037914.png
http://userserve-ak.last.fm/serve/126/69037914.png
http://userserve-ak.last.fm/serve/300x300/69037914.png
2 Feb 2012, 03:26
Colbie Caillat
Oxygen
1
Coco
http://www.last.fm/music/Colbie+Caillat/_/Oxygen
http://userserve-ak.last.fm/serve/34s/69229764.png
http://userserve-ak.last.fm/serve/64s/69229764.png
http://userserve-ak.last.fm/serve/126/69229764.png
http://userserve-ak.last.fm/serve/300x300/69229764.png
2 Feb 2012, 03:22
Подробнее здесь: https://stackoverflow.com/questions/911 ... empty-list
ElementTree findall() возвращает пустой список ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
ElementTree: извлечь значение атрибута с помощью findall и добавить значение в список
Anonymous » » в форуме Python - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-