修改API脚本以在Python中计数器> x时停止while循环?

时间:2018-10-23 08:36:13

标签: python api

这是我第一次在这里发帖,如果我的问题没有达到标准,请原谅我。作为我工作的一部分,尽管我实际上只对python有基本的了解,但我还是必须不时运行API脚本。

下面是while循环:

#awaiting_contact.name

据我所知,while循环将连续计数事件并添加到计数器中。由于某些用户有太多事件,因此我考虑将计数器停止在5000,但不确定如何执行。在某处添加if / else是否可行?

2 个答案:

答案 0 :(得分:0)

由于您已经在一段时间结束时增加了counter,因此您只需要在每次循环迭代之前检查counter的值。基于soonKeerthana的评论,这是我的建议(我使用get()方法只是为了避免KeyError):

has_more_entries = events.get('has_more', None)
while (has_more_entries and counter<=5000):
    url = "https://api.dropboxapi.com/2/team_log/get_events/continue"

    headers = {
        "Authorization": 'Bearer %s' % aTokenAudit,
        "Content-Type": "application/json"
    }

    data = {
        "cursor": events['cursor']
    }

    r  = requests.post(url, headers=headers, data=json.dumps(data))
    events = r.json()
    has_more_entries = events.get('has_more', None)

    if events.get('events', None):
        counter += len(events['events'])

如果您有兴趣的话,也可以看看Python here中的PEP8编码样式

答案 1 :(得分:0)

您可以添加一个检查,以确保该计数器小于您希望其在while条件下达到的最大值。例如:

while hasMoreEntries and counter<=5000:
    <snip>