python - 对象类型和访问嵌套值

标签 python json python-2.7 google-api google-calendar-api

我无法弄清楚(或找到足够详细的文档以便我能够理解它们)python google库,Calendar API。我试图弄清楚我的返回对象有哪些方法,以及如何访问其数据成员。我正在关注 https://developers.google.com/api-client-library/python/start/get_started 上的教程在“已安装应用程序的授权 API 示例”下。在下面的代码中,我已成功进行身份验证,并请求事件列表。返回的值是事件 "items" 的 JSON 列表。返回值完整说明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'。如果我尝试 `print repr(event.get'creator[ "displayName"]'),它总是打印 None。我通过这样做解决了问题:

creator = event.get('creator')
print str(creator['displayName']) + '\n'

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

TL;DR 从返回的列表访问事件中的字典值的语法 在哪里可以从返回的列表中找到事件的方法描述/文档

最佳答案

响应中的对象是字典,并且应该支持所有 same methods 。使用括号表示法来访问对象的属性通常是最简单的。

print event['creator']['displayName']

关于python - 对象类型和访问嵌套值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25234488/

相关文章:

python - Python 中的伪指针功能

python - 遍历元素嵌套结构中的所有 XML 节点

python - 如何实时绘制中断线

python - "System error: new style getargs format but argument is not a tuple"使用 cv2.blur 时

python - Kmeans 不知道簇的数量?

python - 用 python 有效提取 1-5 克

python - 从 JSON 生成数据帧

javascript - Highcharts 数组 :

java - jqGrid 未填充来自 Java Servlet 的 JSON 数据

python - 模块已安装但无法导入