首页 > 解决方案 > 获取列表事件时如何在 Python 中获取 Google Calendar API status_code?

问题描述

我尝试使用 Google Calendar API

events_result = service.events().list(calendarId=calendarId,
                                          timeMax=now,
                                          alwaysIncludeEmail=True,
                                          maxResults=100, singleEvents=True,
                                          orderBy='startTime').execute()

一切正常,当我有权访问 calendarId 时,如果我没有 calendarId 权限,则会出错。

我使用 schedule python 构建了一个 autoload.py 函数,每 10 分钟加载一次事件,如果出现错误,该函数将停止,我必须使用 SSH 终端手动重新启动 autoload.py 所以我想知道:

如何获取status_code,例如,如果是404,python会PASS

标签: pythongoogle-apihttp-status-code-404google-calendar-apigoogle-api-python-client

解决方案


回答:

您可以在循环中使用 try/except 块来遍历所有日历,并跳过引发错误的访问。

代码示例:

要获取错误代码,请确保导入json

import json

然后您可以从异常中获取错误代码:

calendarIds = ["calendar ID 1", "calendar ID 2", "calendar Id 3", "etc"]

for i in calendarIds:
    try:
        events_result = service.events().list(calendarId=i,
                                          timeMax=now,
                                          alwaysIncludeEmail=True,
                                          maxResults=100, singleEvents=True,
                                          orderBy='startTime').execute()
    except Exception as e:
        print(json.loads(e.content)['error']['code'])
        continue

延伸阅读:


推荐阅读