Python iCalendar 参加者格式
Python iCalendar Attendee format
在尝试使用 iCalendar pyton lib 解析 .ics 文件时,我 运行 遇到了一个问题,即有多个与会者参加会议。当有多个与会者时,.get 函数 returns 是 vCalAddress 与会者的列表。有没有办法进一步解析出与会者或 return 仅在此列表中的项目上?
from icalendar import Calendar, Event, vDDDTypes, vCalAddress
g = open('Example.ics','rb')
gcal = Calendar.from_ical(g.read())
for event in gcal.walk('vevent'):
org = event.get('organizer')
date = event.get('dtstart')
summary = event.get('summary')
atten = event.get('attendee')
print (date.dt)
print (summary)
print (org)
print (atten)
print ('-----------')
输出
2017-09-29 15:00:00-07:00
FC08F10 Review
mailto:Example1@gmail.com
[vCalAddress('mailto:Example2@gmail.com'),
vCalAddress('mailto:Example3@gmail.com'),
vCalAddress('mailto:Example4@gmail.com')]
-----------
编辑
我尝试对与会者字段使用 get_line 函数,通过收到的错误消息我发现 vCalAddress 是一个 python 列表。我将我的打印语句编辑为以下 print(atten[0])
,并且在大多数情况下我得到了我正在寻找的内容(这是与会者列表的第一个结果)。不过,目前的一个缺点是,如果只有一个与会者,你只会得到该与会者输出的第一个字母(如果你只是使用 print(atten[0])
如果你对一个与会者使用 print(atten)
你得到整个字符串。我会继续挖掘这个。
要在多人时获得特定的与会者,您可以执行以下操作
atten = event.get('attendee')
print(atten[0])
print(atten[1])
如果只有一名与会者,则无需使用列表索引,只需打印变量即可
print(atten)
编辑
要解析多个与会者,请执行以下操作:
for event in gcal.walk('vevent'):
if atten[i] == 'm':
print(atten)
else:
print(atten[i])
++i
其中 'm' 是与会者字符串的第一个字母。您与会者的第一个字母将取决于它在您的 .ics 文件中的格式。我所有的联系人都在 'mailto:'
在尝试使用 iCalendar pyton lib 解析 .ics 文件时,我 运行 遇到了一个问题,即有多个与会者参加会议。当有多个与会者时,.get 函数 returns 是 vCalAddress 与会者的列表。有没有办法进一步解析出与会者或 return 仅在此列表中的项目上?
from icalendar import Calendar, Event, vDDDTypes, vCalAddress
g = open('Example.ics','rb')
gcal = Calendar.from_ical(g.read())
for event in gcal.walk('vevent'):
org = event.get('organizer')
date = event.get('dtstart')
summary = event.get('summary')
atten = event.get('attendee')
print (date.dt)
print (summary)
print (org)
print (atten)
print ('-----------')
输出
2017-09-29 15:00:00-07:00
FC08F10 Review
mailto:Example1@gmail.com
[vCalAddress('mailto:Example2@gmail.com'),
vCalAddress('mailto:Example3@gmail.com'),
vCalAddress('mailto:Example4@gmail.com')]
-----------
编辑
我尝试对与会者字段使用 get_line 函数,通过收到的错误消息我发现 vCalAddress 是一个 python 列表。我将我的打印语句编辑为以下 print(atten[0])
,并且在大多数情况下我得到了我正在寻找的内容(这是与会者列表的第一个结果)。不过,目前的一个缺点是,如果只有一个与会者,你只会得到该与会者输出的第一个字母(如果你只是使用 print(atten[0])
如果你对一个与会者使用 print(atten)
你得到整个字符串。我会继续挖掘这个。
要在多人时获得特定的与会者,您可以执行以下操作
atten = event.get('attendee')
print(atten[0])
print(atten[1])
如果只有一名与会者,则无需使用列表索引,只需打印变量即可
print(atten)
编辑
要解析多个与会者,请执行以下操作:
for event in gcal.walk('vevent'):
if atten[i] == 'm':
print(atten)
else:
print(atten[i])
++i
其中 'm' 是与会者字符串的第一个字母。您与会者的第一个字母将取决于它在您的 .ics 文件中的格式。我所有的联系人都在 'mailto:'