这里的next是什么意思?Python Instagram API
我正在尝试使用Python的Instagram API,遇到了一段我不太明白的示例代码,在它的github文档上找到的。
在第五行,为什么要加上next?next是干嘛的?
为什么我们不能直接写recent_media = api.user_recent_media(user_ir)?
from instagram.client import InstagramAPI
access_token = "YOUR_ACCESS_TOKEN"
api = InstagramAPI(access_token=access_token)
recent_media, next = api.user_recent_media(user_id="userid", count=10)
for media in recent_media:
print media.caption.text
3 个回答
使用api.user_recent_media(...)这个方法会返回两个值,其中第二个值是一个分页参数。
想了解更多信息,请查看文档 这里。
这个 api.user_recent_media(user_id="userid", count=10)
语句会返回一个长度为2的元组,格式是:
(value1, value2)
如果你这样写:
recent_media = api.user_recent_media(user_id="userid", count=10)
那么 recent_media
就会是 (value1, value2)
但是如果你这样写:
recent_media, next = api.user_recent_media(user_id="userid", count=10)
那么 recent_media
就是 value1
,而 next
就是 value2
示例
>>> z = ('a', 'b')
>>> print z
('a', 'b')
你也可以这样做:
>>> x,y = ('a', 'b')
>>> print x
a
>>> print y
b
这样处理数据会更方便。你不需要再用 z[0]
或 z[1]
(其中 z 是上面提到的元组),而是可以直接使用 x
和 y
。
希望这能帮到你
第二个参数是用来处理分页的。API调用会给你第一“页”的结果,如果你想要更多的结果,就需要获取后面的“页”。
如果你想尽可能多地获取图片,并最终得到一个包含媒体对象的列表在 recent_media
中,你可以这样做:
recent_media, next = self.api.user_recent_media(user_id=userid)
while next:
more_media, next = self.api.user_recent_media(with_next_url=next)
recent_media.extend(more_media)
如果你本来就限制结果为10条,你可以在第一次API调用后检查一下你得到了多少结果,如果已经足够了,就可以忽略分页的部分。(根据经验,API目前返回的是20条结果,但这似乎没有文档说明,所以可能会改变。)