Skip to main content
 首页 » 编程设计

python之搜索不匹配 Google Calendar API 查询中的单个字符

2025年05月04日33zlslch

在我的 Google 日历中,我有一个名为“那是什么?没什么”的事件。如果我运行以下查询,就会正确找到该事件:

eventsResult = service.events().list( 
    calendarId=CALENDAR_ID, 
    q="Nothing.").execute() 

但是,如果我尝试查找完整标题(包括单引号),则找不到:

eventsResult = service.events().list( 
    calendarId=CALENDAR_ID, 
    q="What's that? Nothing.").execute() 

我很确定这不是字符串中字符错误的问题,因为我尝试从日历本身和第一个(工作)请求的结果中复制整个标题,但无济于事。我应该做任何转义或编码吗?

更新:

问题不仅限于单引号。发现名为“aa.bb.cc”的事件没有问题,“aa.b.cc”也是如此。但是,找不到“a.b.cc”。没有点也是如此;找到了“aa b cc”,但没有找到“a b cc”。好像是单字符的问题,但我还不知道它到底是什么时候发生的……

请您参考如下方法:

str = "\"What's that? Nothing\".\"" 
eventsResult = service.events().list(calendarId='primary', q=str).execute()         
 
events = eventsResult.get('items', []) 
 
if not events: 
    print('No upcoming events found.') 
for event in events: 
    start = event['start'].get('dateTime', event['start'].get('date')) 
    print(start, event['summary']) 

请参阅“str”。这就是你想要的。这个的输出

Finding the calendar events 
2015-09-16T13:30:00+03:00 "What's that? Nothing."