2017-08-10 49 views
-1

我有一个有多个页面的API,所以我需要遍历所有的页面以获取eveything。但是,我不知道如何正确执行此操作。我写了下面的代码,但它给了我一个错误:SyntaxError:'return'外部函数。如何从API获取所有页面 - Python?

import requests 

def get_json(url): 
    response = requests.get(url) 
    return response.json() 

def my_range(start, end, step): 
    while start <= end: 
     yield start 
     start += step 

for pageNumber in my_range(1, 3, 1): 
    return 

data_json = get_json('https://www.eventbriteapi.com/v3/events/search/?token=MYAPIKEY&expand=venue&location.latitude=55.676097&location.longitude=12.568337&location.within=5km&page='+pageNumber) 

eventbrite = data["events"] 
+2

这意味着你有一个函数之外的'return'声明。在'for for pageNumber in ...'for for循环之后,你有一个单独的'return' - 你想在这里做什么? –

回答

1

提供的代码存在设计错误。在前两个高清:■定义两个功能没有问题,但我认为你正在写的主要不宣

def main(): 

和调用的main()之后。这个错误是由一个有趣的地方“返回”造成的。

+1

是的,这将修复'SyntaxError',但代码将无法正常工作。解决方法是删除'return'语句并缩进以下行。当操作尝试连接'str + int'时,这仍然会导致一个'TypeError',但这可以很容易地修复 –

1

由于您使用的是requests库,我想看看params文档here。这将帮助您在拨打get_json()时绕过手动进样。如果您知道您拥有多少页面,则可以遍历每个页面并为每个页面进行网络呼叫 - 如果您有10个页面,则最终会进行10次网络呼叫。

当然,这是假设你进行分页每个端点

相关问题