如何在Python中解析iCal日历文件的CATEGORIES组件

2024-05-19 22:11:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用icalendar用Python解析.ics文件。我可以循环浏览活动,我可以阅读开始和结束日期、摘要和与会者。我的问题是我不知道如何读取/解析CATEGORIES条目。这是我的密码

    for event in cal.walk('vevent'):

    dateStart = event.decoded('dtstart')
    dateEnd = event.decoded('dtend')
    summary = event.get('summary')
    category = event.get('categories')
    #category = event.from_ical('categories')
    organizer = event.get('organizer')
    attendeeName = event.get('attendee') #.params['cn']
    print "Start Date: {} End Date: {} Category: {} Attendee: {} Summary: {}".format(dateStart, dateEnd,category,attendeeName,summary)

在这种形式下,我得到如下输出:

Start Date: 2020-02-21 End Date: 2020-02-22 Category: <icalendar.prop.vCategory object at 0x7f3bfec8a810> Attendee: None Summary: Mahashivarathri

所以我要拿回vCategory对象。如果我尝试使用from_icial()获取类别变量的注释掉版本,我会得到一个错误

Traceback (most recent call last):
  File "./ical.py", line 73, in <module>
    calTest()
  File "./ical.py", line 66, in calTest
    category = event.from_ical('categories')
  File "/usr/lib/python2.7/site-packages/icalendar/cal.py", line 330, in from_ical
    name, params, vals = line.parts()
  File "/usr/lib/python2.7/site-packages/icalendar/parser.py", line 354, in parts
    % (self, exc)
ValueError: Content line could not be parsed into parts: 'categories': Invalid content line

下面是从.ics文件中剪下的一个摘要,它可以正常工作,而类别则不行

SUMMARY:Leave
CATEGORIES:other

我做错了什么


Tags: infrompyeventgetdatelinesummary