我是 XML-RPC 的新手,我想知道是否有任何好的教程可以将 XML-RPC 与 Last.fm API 一起使用。
是否可以使用 xmlrpclib 模块调用 API 方法,如下例所示?
import xmlrpclib
myserver = xmlrpclib.ServerProxy('http://ws.audioscrobbler.com/2.0/')
我是 XML-RPC 的新手,我想知道是否有任何好的教程可以将 XML-RPC 与 Last.fm API 一起使用。
是否可以使用 xmlrpclib 模块调用 API 方法,如下例所示?
import xmlrpclib
myserver = xmlrpclib.ServerProxy('http://ws.audioscrobbler.com/2.0/')
你的代码看起来很好。
您可能不知道这一点,但大多数 XML-RPC 端点(例如 Last.fm 的)都支持XML-RPC 自省。例如,如果您想找出它公开了哪些方法,请执行以下操作:
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 文档主页所示)方法,您可以这样做:
print svc.user.getTopTags({'user': 'foo', 'api_key': 'bar'})
死简单!当然,您需要 Last.fm 的 API 密钥才能使用 API。
现在不是处理 last.fm 的 api 的好时机。我想他们会在几天内改变它。
pylast 库是这项工作的不错选择。
该库具有非常庞大的功能集,涵盖了last.fm API的所有主要部分。
这包括:专辑、艺术家、授权、事件、地理、图书馆、播放列表、标签、品味计评级、用户和场地。
使用这样的库意味着为您完成了很多工作,因此您不必花时间重新发明轮子。(库本身是 3,000 多行代码)。
因为这个库是在许可下发布的,所以可以自己修改代码。
在http://sourceforge.net/tracker/?group_id=66150&atid=513503上还有一个社区致力于突出库中的任何错误
是的,您使用 xmlrpclib 的示例看起来不错。
Pylast 可能不是最好的初学者示例。从 Python 中,我认为最简单的选择是使用您提到的 XML-RPC,或者使用 JSON 响应格式和simplejson的REST API来解码输出。