python - gcsa - 谷歌日历 API 的 Pythonic 包装器
问题描述
这是我的第一篇文章,我对 python 很陌生,所以如果我的问题/礼仪不够完善,请提前原谅。这可能是一个非常琐碎的问题。
事情是这样的:我正在尝试开发一个应用程序,该应用程序将通过 Google Calendar API 定期检查日历是否有新事件,然后生成一个包含日历 ID 和事件 ID 的二维码。
由于我是 python 新手,所以我搜索了一些可能会使事情变得更顺畅的东西,并找到了 gcsa:https ://github.com/kuzmoyev/google-calendar-simple-api ,它非常好用且方便。
我遇到的问题是使用 gcsa,在日历中列出事件的默认方式仅返回事件时间和名称:
from gcsa.google_calendar import GoogleCalendar
calendar = GoogleCalendar('primary')
for event in calendar:
print(event)
给我2021-02-16 10:30:00-03:00 - TEST
作为新手,我终其一生都无法找到从事件资源中返回其他数据的方法,例如“id”(我需要)和“状态”(我将用作标志)对于新/旧事件)。
据我了解,有必要稍微调整一下代码,可能在 google_calendar.py 中,也可能在 event_serialyzer.py 中。可能我应该已经注意到了一些非常小的愚蠢的东西。
我什至无法准确指出执行 GoogleCalendar() 的位置以及它从哪里获取显示的数据,但我的猜测可能是 google_calendar.py 中的第 321 行或第 376 行?打败我。
已经围绕这个问题大惊小怪了两天,没有运气,请问有人对此有任何见解吗?
我知道有一些方法可以直接在 python 中请求事件对象,如https://developers.google.com/calendar/v3/reference/events/list#python所示,这将是我的下一个选择。
如果事实证明它太尴尬或不值得麻烦,我将不使用 gcsa 并以通常的方式提出请求。
非常感谢大家!
解决方案
您的假设gcsa
只返回事件的时间并且名称是错误的。使用检查自定义对象print
不是很有效率。您将看到的只是对象的字符串表示形式(由其__str__
方法决定)。
您应该使用实际的调试器来检查对象,或者至少使用vars(obj)
or打印可用的属性dir(obj)
,或者当然是查看实际的类。
在这种情况下,如果您查看实际的 class,您会发现它包含的不仅仅是开始日期和名称。它还具有(以及其他属性)event_id
。
推荐阅读
- python - 使用带约束的排列 itertools (Python)
- python - 有人可以向我解释为什么调用 updateGame() 函数时“健康”变量没有更新吗
- c# - 在 C# 8 中检查 null 并立即分配给变量
- tensorflow - 使用 GPU 训练的模型能否用于在 CPU 上进行推理?
- sql - postgres中基本SELECT * FROM x查询的奇怪结果
- javascript - 旋转功能每 5 秒发生一次,而不是每次按钮单击
- java - Spring MVC 中 Jersey ClientRequestContext 和 ClientResponseContext 的等效部分是什么?
- html - 定位(垂直居中)跨度的内部 div
- python - Anaconda 更新下载所有包?
- clang - LLVM 模块级内联`ModuleInlinerWrapperPass` 用法