Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SoundCloudAPI忽略持续时间过滤器_Python_Api_Dictionary_Soundcloud - Fatal编程技术网

Python SoundCloudAPI忽略持续时间过滤器

Python SoundCloudAPI忽略持续时间过滤器,python,api,dictionary,soundcloud,Python,Api,Dictionary,Soundcloud,在上的SoundCloudAPI文档之后,我开始在我的一个项目中编写SoundCloudAPI的实现。我尝试使用以下代码获得50首特定类型的曲目,最小长度为120000毫秒: def get_starttracks(genres="Rock"): return client.get("/tracks", genres=genres, duration={ 'from': 120000 }, limit='50') SoundCloud会以有效的曲目列表进行响应,

在上的SoundCloudAPI文档之后,我开始在我的一个项目中编写SoundCloudAPI的实现。我尝试使用以下代码获得50首特定类型的曲目,最小长度为120000毫秒:

def get_starttracks(genres="Rock"):
    return client.get("/tracks", genres=genres, duration={
        'from': 120000
    }, limit='50')
SoundCloud会以有效的曲目列表进行响应,但它们的持续时间与给定的过滤器不匹配

例如:

print(get_starttracks(genres="Pop")[0].fields()['duration'])
> 30000
api是否忽略了“duration”参数,或者我的代码中的过滤器是否存在错误


注:如果python代码中没有错误,则可能与此相关。

在尝试通过对代码进行几处更改来修复此问题后,我终于发现了问题:

这不是一个bug。随着Soundcloud发布他们的“Go+”服务,一些官方曲目的预览时间被限制在30秒。API过滤器似乎比较了完整曲目的持续时间,而只是将预览版本发送回客户端(如果您尚未订阅“Go+”和/或您的应用程序未登录)

因此,按持续时间过滤的唯一方法是迭代所有接收到的曲目:

for track in tracks:
    if track.duration <= 30000:
        tracks.remove(track)
对于轨道中的轨道:
如果跟踪。持续时间