【问题标题】:Discogs API => How to retrieve genre?Discogs API => 如何检索流派?
【发布时间】:2015-07-11 19:29:02
【问题描述】:

我已经抓取了包含 36.000 首歌曲的曲目列表,这些歌曲已在丹麦国家广播电台 P3 上播放。我想统计一下这段时间内每种流派的播放频率,所以我认为 discogs API 可能有助于用流派标记每首曲目。但是,API 的文档似乎没有包含查询特定歌曲流派的示例。

我有一个包含 3 列的 CSV 文件:艺术家、标题和测试(测试我希望 API 用流派标记每首歌曲的位置)。

这是我目前构建的脚本示例:

import json
import pandas as pd
import requests
import discogs_client
d = discogs_client.Client('ExampleApplication/0.1')
d.set_consumer_key('key-here', 'secret-here')

input = pd.read_csv('Desktop/TEST.csv', encoding='utf-8',error_bad_lines=False)

df = input[['Artist', 'Title', 'Test']]
df.columns = ['Artist', 'Title','Test']

for i in range(0, len(list(df.Artist))):
x = df.Artist[i]
g = d.artist(x)
df.Test[i] = str(g)

df.to_csv('Desktop/TEST2.csv', encoding='utf-8', index=False)

到目前为止,此脚本一直在处理一个包含 3 条记录的虚拟文件,用于映射给定 ID# 的艺术家。但是一旦文件变大(例如 2000),它就会在找不到艺术家时返回 HTTP 错误。

我对这种方法有一些疑问:

1) 您是否建议使用 API 中的搜索查询功能来检索变量为“流派”。或者您认为可以使用“d”检索流派。 API 中的函数?

2) 我需要获取 API 密钥吗?到目前为止,我已经成功映射了没有 API 密钥的 3 条记录。不过看起来钥匙是免费的。

这是我一直关注的指南: https://github.com/discogs/discogs_client

这里是 API 的文档: https://www.discogs.com/developers/#page:home,header:home-quickstart

【问题讨论】:

    标签: python csv python-requests api-key discogs-api


    【解决方案1】:

    我找到了这份指南:

    https://github.com/neutralino1/discogs_client.
    

    使用您的密钥访问 api 并尝试以下操作:

    d = discogs_client.Client('something.py', user_token=auth_token)
    release = d.release(774004)
    genre = release.genres
    

    如果您找到更好的解决方案,请分享。

    【讨论】:

      【解决方案2】:

      也许您需要重新阅读 discogs_client 示例,我自己不是专家,而是尝试使用此 API 的新手。

      AFAIK, g = d.artist(x) 失败,因为 x 必须是整数而不是字符串。

      所以你必须先进行搜索,然后获取艺术家 id,然后是 d.artist(artist_id)

      抱歉没有提供示例,我现在是 python 新手 ;)

      你也检查过acoustid

      【讨论】:

      • 在 Stack Overflow 中,您应该尽可能提供帮助。发布答案时,如果可以或显示一些研究结果,请尝试编写代码示例。检查stackoverflow.com/help/how-to-answer 了解更多信息。欢迎来到 SO。
      • bleuge >> 所以我需要艺术家 ID 才能查询有关艺术家/标题的数据?文档有点有限.. IMO 功能的解释不多
      【解决方案3】:

      这可能是一个速率限制。 阅读响应的状态码,您应该会发现 429 Too Many Requests

      不幸的是,如果是这种情况,唯一的解决方案是在代码中添加睡眠以每秒发出一个请求。

      查看 api 文档: http://www.discogs.com/developers/#page:home,header:home-rate-limiting

      【讨论】:

      • 我得到一个:HTTPError: 404: Artist not found。我读过他们对图像查询的限制是每分钟 300 个,所以我尝试将其添加到我的 python 代码中。但是,我不断收到 404。
      • 似乎 404 可能是阻碍查询的原因。在 api 文档的速率限制部分,它说:“目前,唯一的速率限制资源是图像类型,但您的应用程序应该足够智能,知道我们是否开始限制其他资源。”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      • 2019-01-05
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多