Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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中执行递归时出错_Python_Recursion - Fatal编程技术网

在Python中执行递归时出错

在Python中执行递归时出错,python,recursion,Python,Recursion,我使用下面的函数获取我们facebook社区中的所有群组。我将页面限制设置为20(n),以在一个页面中获取所有组,然后递归地转到下一个页面。但是在我们的社区里有将近1000个团体。在一个页面中有20页和25个组,我得到了接近500个组。如果我增加页面限制,递归会抛出一个“下一个指针无法处理”的错误 有人遇到过这种错误吗?你有没有采取措施来克服它?任何建议都很好 TOKEN = "kjahfdsk1232415" def getGroups(n,groups,after=None):

我使用下面的函数获取我们facebook社区中的所有群组。我将页面限制设置为20(n),以在一个页面中获取所有组,然后递归地转到下一个页面。但是在我们的社区里有将近1000个团体。在一个页面中有20页和25个组,我得到了接近500个组。如果我增加页面限制,递归会抛出一个“下一个指针无法处理”的错误

有人遇到过这种错误吗?你有没有采取措施来克服它?任何建议都很好

TOKEN = "kjahfdsk1232415"
def getGroups(n,groups,after=None):

      if n==20:
          return groups
      headers = {'Authorization': 'Bearer ' + TOKEN}

      params = "?fields=feed.since(" + "1493658316"  + ").limit(1),name,updated_time&"

      params += "&limit=" + 10

      if after:
          #print (after)
          params += "?limit=50&after=" + after

      graph_url = GRAPH_URL_PREFIX + "community" + GROUPS_SUFFIX + params

      result = requests.get(graph_url, headers=headers)
      result_json = json.loads(result.text)

      if "data" in result_json:
          for group_obj in result_json["data"]:
              groups.append(group_obj)

      n = n + 1
      if 'paging' in result_json:
          getGroups(n,groups,after=result_json["paging"]["next"])
      return groups

通过不使用递归而使用循环来克服这个问题。Python不知道尾部调用优化。+1表示使用循环,但如果您通过不使用递归而使用循环来克服这一点。Python不知道尾部调用优化。使用循环的注释是+1,但是如果