我已经在丹麦国家广播电台P3上播放了36,000首歌曲的曲目列表。我想对这段时间内每个类型的播放频率做一些统计,所以我认为discogs API可能有助于用流派标记每个音轨。但是,API doesent的文档似乎包含了查询特定歌曲类型的示例。
我有一个包含3列的CSV文件:Artist,Title&测试(测试我希望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),它就会在找不到艺术家时返回HTTPerror。
我对这种方法有一些疑问:
1)您是否建议使用API中的搜索查询功能将变量检索为“Genre”。或者你认为有可能用'd'来检索流派。来自API的功能?
2)我需要获取API密钥吗?到目前为止,我已经成功地映射了没有API密钥的3条记录。看起来钥匙是免费的。
以下是我一直关注的指南: https://github.com/discogs/discogs_client
以下是API的文档: https://www.discogs.com/developers/#page:home,header:home-quickstart
答案 0 :(得分:1)
也许您需要重新阅读discogs_client示例,我自己不是专家,而是尝试使用此API的新手。
AFAIK,g = d.artist(x)失败,因为x必须是整数而不是字符串。
所以你必须首先进行搜索,然后获得艺术家ID,然后d.artist(artist_id)
很抱歉没有提供示例,我现在是python新手;)
你也检查过acoustid
答案 1 :(得分:0)
我找到了这个指南:
https://github.com/neutralino1/discogs_client.
使用您的密钥访问 api 并尝试以下操作:
d = discogs_client.Client('something.py', user_token=auth_token)
release = d.release(774004)
genre = release.genres
如果您找到更好的解决方案,请分享。