用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>
试图替换get
与decoded
这样的:
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()
。