0

还有其他人在为注释添加标签时遇到问题gkeepapi吗?

import gkeepapi
keep = gkeepapi.Keep()

file = open("C:\\xxxxxxx", "r")
pwd = file.read()
keep.login('xxxxxxxx', pwd)
note = keep.createNote('title', 'text')
note.labels.add('calls')

给我这个错误。

Traceback (most recent call last):
  File "C:/Users/Jason/Google Drive/pycharm/test.py", line 8, in <module>
    note.labels.add('calls')
  File "C:\Python27\lib\site-packages\gkeepapi\node.py", line 922, in add
    self._labels[label.id] = label
AttributeError: 'str' object has no attribute 'id'

这是文档。https://gkeepapi.readthedocs.io/en/latest/#manipulating-labels-on-notes。我认为我在做正确的事,但我显然不是。

4

1 回答 1

2

我想说,计算机历史上几乎所有的错误都是由头脑中“我认为我在做正确的事情”的人造成的 :-)

更严重的是,您添加到笔记的标签是标签而不是字符串。它试图从一个字符串对象(没有一个)中获取您的标签标识符这一事实支持了这一点:

“str”对象没有属性“id”

这实际上在您提供的链接中进行了描述,距您的锚点仅三个部分:

创建标签
     可以使用以下方法创建新标签Keep.createLabel()
          label = keep.createLabel('todo')

: : blah blah blah

操作注释
     上的标签 使用标签和注释时,要记住的关键点是我们始终使用node.Label对象或 ID。

因此,您可以创建一个标签并将其添加到带有以下行的注释中:

callLabel = keep.createLabel('calls')
note.labels.add(callLabel)

如果您已经有一个具有该名称的标签,您可以通过以下方式获取它:

callLabel = keep.findLabel('calls')

因此,如果您想无缝处理这两种可能性,请尝试在 a 中创建标签try/catch,如果遇到异常,请执行查找。

于 2019-02-05T01:44:33.430 回答