对象类型和访问嵌套值

2024-04-18 11:38:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难为python google库CalendarAPI找出(或者找到足够详细的文档,我可以理解它们)。我试图弄清楚返回对象有哪些方法,以及如何访问它的数据成员。我遵循https://developers.google.com/api-client-library/python/start/get_started中“已安装应用程序的授权API示例”下的教程。在下面的代码中,我已经成功地进行了身份验证,并请求事件列表。返回的值是一个JSON事件列表"items"。返回值here的完整描述。在

service = discovery.build('calendar', 'v3', http=http)

try:
    #sample from google devs, prints title of all events, ever on primary
    request = service.events().list(calendarId='primary')
    while request != None:
        response = request.execute()
        for event in response.get('items', []):
            print repr(event.get('summary', 'NO SUMMARY')) + '\n'
        request = service.events().list_next(request, response)'''

我无法访问for循环中的成员数据summary'是来自“items”的event的顶级数据成员,并且只是一个字符串creator'是一个字典,有一个值displayName我想打印。如果我尝试类似print repr(event.get('creator') + '\n',它将打印字典“creator”。如果我试着打印(事件.获取“creator[“displayName”]”),它始终不打印任何内容。我通过以下方式解决了问题:

^{pr2}$

但是我想我缺少了某种语法,它允许我在一行中访问所有的内部值。另一件事是,我不知道循环中event是什么类型的对象。我的意思是,显然它是一个从请求返回的event对象,但是我能找到的唯一API文档是指由service.events()创建的对象。这个事件.获取()方法与文档中的方法不同(至少,它有不同的参数),但我不知道在哪里可以找到该文档。在

TL;DR 从返回列表访问事件中的字典值的语法 从返回的列表中查找事件的方法说明/文档的位置


Tags: 数据对象方法文档event列表getrequest