您正在尝试拨打文档URL;返回的页面解释了如何使用API,它不是实际的API方法本身。打电话的实际API:
http://ws.audioscrobbler.com/2.0/
,并给予方法作为参数:
params = {
"method": "track.getSimilar",
"track": "Believe",
"artist": "Cher",
"limit": "5",
"api_key":"#my_api_key"
}
r = request.get('http://ws.audioscrobbler.com/2.0/', params=params)
见API introduction:
的API根URL位于http://ws.audioscrobbler.com/2.0/
和REST requests documentation:
一般而言,您将发送一个表示为'package.method'的方法参数以及特定于方法的参数给根URL。下面的参数是必需的所有呼叫:
API_KEY:一个Last.fm API密钥。
方法:以package.method表示的API方法,对应于记录的last.fm API方法名称。
演示:
>>> import requests
>>> params = {
... "method": "track.getSimilar",
... "track": "Believe",
... "artist": "Cher",
... "limit": "5",
... 'api_key': '#a valid api key#',
... }
>>> r = requests.get('http://ws.audioscrobbler.com/2.0/', params=params)
>>> r
<Response [200]>
>>> r.headers['content-type']
'text/xml; charset=utf-8;'
>>> r.content.splitlines()[1:3]
['<lfm status="ok">', '<similartracks track="Believe" artist="Cher">']
如果您正在使用requests
可能会更容易设置format
参数json
:
>>> params['format']= 'json'
>>> r = requests.get('http://ws.audioscrobbler.com/2.0/', params=params)
>>> r.json()['similartracks']['@attr']
{u'track': u'Believe', u'artist': u'Cher'}
然而,而不是重新发明轮子,你可以使用pyLast
module代替:
import pylast
from itertools import islice
last = pylast.LastFMNetwork(api_key="#your_api_key", api_secret="#your_api_secret")
track = last.get_track('Cher', 'Believe')
for similar in islice(track.get_similar(), 5):
# limited to the first 5 similar tracks
print similar.item
有一个python lastfm客户端:['pylast'](https://github.com/pylast/pylast)。您可以使用它而不是重新发明轮子。 – alecxe 2014-08-31 00:42:51
当然,谢谢我阅读有关它。我是Python新手,想了解如何使用这些基础知识以及为什么对上述调用的响应不符合预期的格式。任何在这个方向的指针将非常感谢! – Abc 2014-08-31 00:53:05