Python Looping Requests.get()。json()并获取值

时间:2014-11-13 14:26:12

标签: python json facebook-graph-api

我不久前选择了Python,我尝试使用Facebook Python SDK获取特定帖子的所有评论。

问题:

Facebook Graph API每个帖子只允许25条评论,所以为了获得更多,我必须进入下一页。有些帖子可以达到几千个评论,因此硬编码是最糟糕的解决方案。

我似乎无法循环request.get()。

我的硬编码版本:

      for i in JDict['data']:
           #first 25 comments
            for a in range(0,25,1):
                print i['comments']['data'][a]['message']
                print "-"*20

            #next 25 link
            myReq = requests.get(i['comments']['paging']['next']).json()
            for b in range(0,25,1):
                print myReq['data'][b]['message']
                print "-"*20

            #next 25 comments
            myReq2 = requests.get(myReq['paging']['next']).json();
            for c in range(0,25,1):
                print myReq2['data'][c]['message']
                print "-"*20

            #next 25 comments
            myReq3 = requests.get(myReq2['paging']['next']).json();
            for d in range(0,25,1):
                print myReq3['data'][d]['message']
                print "-"*20 

这段代码的结果是我需要的,但我无法让循​​环工作。

我尝试了什么:

我已经在https://github.com/pythonforfacebook/facebook-sdk/blob/master/examples/get_posts.py中看到并尝试了while循环,但它没有用,它只是循环回到同一页面的注释。

提前致谢!

1 个答案:

答案 0 :(得分:0)

好吧......好像我必须回答我自己的问题。

我使用pip下载facebook-sdk,但似乎根本没有更新

参考更新版本here,next()方法允许您在不使用request.get()的情况下转到下一页。

然后,基本上只创建一个循环next()方法的方法。