我正在使用Django所以所有这些都在虚拟环境中运行,所以这可能是我的问题的原因(即使我不知道如何)
我创建了一个函数来拆分包含日期和时间的字符串:
def split_time(time_string, string): # '2018-03-17T05:20:00+01:00'
if string == 'date':
date = time_string.split('T')[0]
return date
elif string == 'time':
pre_time = time_string.split('T')[-1]
time = pre_time.split('+')[0]
return time
评论显示我得到的字符串
我使用[0]
和[-1]
因为某些原因,数组填充了负面方向(我已经创建了一个问题,因为这给了我使用[-1]
的解决方法,如果需要,我会链接问题)
这里我称之为函数:
end_event_time = split_time(end, 'time')
test = end_event_time.split(':')
h = test[0]
m = test[1]
print(end_event_time, h, m)
测试显示['05', '20', '00']
h
给了我05
,m
提出了错误list index out of range
[-1]
显示00
我的问题是我不仅需要用负索引调用变量,我只能访问第一个和最后一个变量
我正在使用Django环境,但这些测试显示在控制台上
任何帮助将不胜感激!
修改
包括:
from __future__ import print_function
import httplib2
import os
from apiclient import discovery
from oauth2client import client
from oauth2client import tools
from oauth2client.file import Storage
import datetime
完整功能如下所示:
def is_double(start_date, start_time, end_date, end_time):
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
service = discovery.build('calendar', 'v3', http=http)
start_date_time = start_date +'T'+ start_time +":00+02:00"
print("testing:", start_date_time )
end_date_time = end_date +'T'+ end_time +":00+02:00"
start_now = datetime.datetime.utcnow().isoformat() + 'Z'
#Getting the upcoming 20 events
eventsResult = service.events().list(calendarId='primary', timeMin=start_now, maxResults=20, singleEvents=True,
orderBy='startTime').execute()
events = eventsResult.get('items', [])
if not events:
print('no event')
return False
for event in events:
start = event['start'].get('dateTime', event['start'].get('date'))
end = event['end'].get('dateTime', event['end'].get('date'))
#up to this line everything is copied from the google api website
#i am getting the 10 upcoming events from a google calendar
end_event_time = split_time(end, 'time')
test = end_event_time.split(':')
h = test[0]
m = test[-1]
print(end_event_time,test, h, m)
return true
输出:
05:20:00 ['05', '20', '00'] 05 00
01:03:00 ['01', '03', '00'] 01 00
注意:为了测试这个,需要连接谷歌日历,但如果我使用end_event_time = '05:20:00'
而不是我的split_time(),我会得到相同的输出,所以我很确定它与日历无关API。
答案 0 :(得分:0)
好的伙计们,朋友解决了这个问题:
我尝试调用test[1]
但测试是一个列表!
所以使用push和pop修复它!