我有麻烦弄清楚(或找到足够详细的文档,我可以理解他们)为python谷歌库,Calendar
API。我试图找出我的返回对象有什么方法,以及如何访问它的数据成员。我在https://developers.google.com/api-client-library/python/start/get_started的"已安装应用程序示例的授权API"下学习教程。在下面的代码中,我已经成功地进行了身份验证,并请求了事件列表。返回值是事件"items"
的JSON列表。返回值的完整描述在这里。
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'是event
中来自'items'的顶级数据成员,只是一个字符串。'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,博士从返回列表中访问事件中的字典值的语法从返回的列表
响应中的对象是字典,应该支持所有相同的方法。通常使用括号符号来访问对象的属性是最简单的。
print event['creator']['displayName']