Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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 从Soundcloud曲目资源检索Soundcloud用户资源_Python_Search_Soundcloud - Fatal编程技术网

Python 从Soundcloud曲目资源检索Soundcloud用户资源

Python 从Soundcloud曲目资源检索Soundcloud用户资源,python,search,soundcloud,Python,Search,Soundcloud,我正在尝试从给定的Soundcloud曲目资源对象“回溯”到创建它的Soundcloud用户资源对象。鉴于我对SoundCloudAPI的理解,这就是我所做的 第1步:检索特定曲目 track = client.get('/tracks', title="White Lies (feat. Jenni Potts)", limit=1) 这将返回一个曲目集(Odesza) 第二:从曲目资源中收集关于曲目用户的信息 white_lies

我正在尝试从给定的Soundcloud曲目资源对象“回溯”到创建它的Soundcloud用户资源对象。鉴于我对SoundCloudAPI的理解,这就是我所做的

第1步:检索特定曲目

track = client.get('/tracks', title="White Lies (feat. Jenni Potts)",
                              limit=1)
这将返回一个曲目集(Odesza)

第二:从曲目资源中收集关于曲目用户的信息

white_lies_perma = track[0].user["permalink"]
white_lies_uID = track[0].user["id"]
第三:使用上述过滤器获取用户(希望如此)

users = client.get('/users',
                id=white_lies_uID,
                permalink=white_lies_perma)
这应该返回1个用户,但是资源集合的长度是50(API默认值)。这很奇怪

打印值:

for user in users:
    print(user.id)
79582

2684450

3765692

9918957

12470953

等等

这应该只是长度为1的集合,包含id为18604897的资源

此外,该代码应该合理地返回“俄克拉荷马城”20次以上。然而,当运行它给我“圣弗朗西斯角”,“奥古斯塔”,“伦敦英国”


Soundcloud的API有问题吗?

不确定您在第三次调用中是如何实现这些过滤器的,但我认为如果您这样做,您应该获得所需的信息

users=client.get('/users/%d'%white\u lies\u uID)

因为您不需要执行搜索,只需调用正确的/users/endpoint即可。要查看特定用户可以使用哪些端点,请转到并向下滚动到用户包含的字段列表下方。在这里,您可以看到一个端点列表,一旦您有了用户id,就可以调用这些端点

client = soundcloud.Client(client_id='xxxxx')
okcUsers = client.get('/users',city="Oklahoma City",limit=20)
for okcUser in okcUsers:
    print okcUser.city