我是XML-RPC的新手,我想知道是否有任何好的教程可以将XML-RPC与Last.fm API一起使用。
是否可以使用xmlrpclib模块调用API方法,如下例所示?
import xmlrpclib
myserver = xmlrpclib.ServerProxy('http://ws.audioscrobbler.com/2.0/')
答案 0 :(得分:7)
您的代码看起来很好。
您可能不知道这一点,但大多数XML-RPC端点(例如Last.fm)支持XML-RPC introspection。例如,如果您想了解它暴露的方法,请执行以下操作:
import xmlrpclib
svc = xmlrpclib.ServerProxy('http://ws.audioscrobbler.com/2.0/')
print svc.system.listMethods()
您将获得XML-RPC端点公开的方法列表。
顺便说一下,那里的那段代码演示了如何使用ServerProxy
对象来调用它所绑定的端点所暴露的方法,在本例中是system.listMethods
方法。如果你想调用Last.fm公开的user.getTopTags
(如API documentation homepage)方法所示,你可以这样做:
print svc.user.getTopTags({'user': 'foo', 'api_key': 'bar'})
死简单!当然,在使用API之前,您需要Last.fm中的API密钥。
答案 1 :(得分:1)
现在不是在last.fm的api上工作的好时机。我想他们会在几天内改变它。
答案 2 :(得分:1)
pylast library是这项工作的不错选择。
该库具有非常多的功能,涵盖last.fm API的所有主要部分。
这包括:专辑,艺术家,身份验证,活动,地理位置,图书馆,播放列表,标签,Tasteometer评级,用户和场地。
使用这样的库意味着很多工作都是为你完成的,所以你不要花时间重新发明轮子。 (该库自己有超过3,000行代码)。
由于此库发布的许可证,可以自行修改代码。
还有一个社区的人们在http://sourceforge.net/tracker/?group_id=66150&atid=513503
高亮显示图书馆中的任何错误答案 3 :(得分:0)
答案 4 :(得分:0)
是的,您使用xmlrpclib的示例看起来很好。
Pylast可能不是最好的初学者例子。从Python开始,我认为最简单的选择是使用你提到的XML-RPC,或者REST API使用JSON响应格式和simplejson来解码输出。