用Python解析ics文件。的iCalendar包不返回开始/结束日期和其他属性

问题描述:

我试着使用的iCalendar包,并运行此脚本解析谷歌日历(cal.ics):用Python解析ics文件。的iCalendar包不返回开始/结束日期和其他属性

from icalendar import Calendar, Event 
from datetime import datetime 

g = open('cal.ics','rb') 
gcal = Calendar.from_ical(g.read()) 
for component in gcal.walk(): 
     print component.get('summary') 
     print component.get('dtstart') 

g.close() 

输出是正确summary但不是start date即时得到:

<icalendar.prop.vDDDTypes object at 0x10bae9b10> 

试图替换getdecoded这样的:

print component.decoded('summary') 
    print component.decoded('dtstart') 

...但得到的连接错误:

--------------------------------------------------------------------------- 
KeyError         Traceback (most recent call last) 
<ipython-input-57-d6a73c485b11> in <module>() 
     8 #  print component.content_line 
     9   print component.name 
---> 10   print component.decoded('summary') 
    11   print component.get('dtstart') 
    12 

~/anaconda/lib/python2.7/site-packages/icalendar/cal.pyc in decoded(self, name, default) 
    238   else: 
    239    if default is _marker: 
--> 240     raise KeyError(name) 
    241    else: 
    242     return default 

KeyError: 'summary' 

所有我发现文档是有关添加到日历,而我尝试分析它,并最终进入它的部分为大熊猫。如果您有任何想法/建议,请帮助。

我几年前就有这个问题 - 真正的挫折感来源。解决办法是做

component.get('dtstart').dt 

一般情况下,当你遇到这样的问题,尝试调用它dir()