2017-02-13 69 views
0

这是一个关于wpercy和Kieran最近回答的问题。 我正在尝试一些Python代码来改进Zapier中的Zap。 第一阶段涉及从提供的(由Google)字符串变量提取参与者电子邮件,其中包含用逗号分隔的电子邮件。用python提取谷歌日历事件的与会者响应

我现在需要弄清楚的是如何提取与会者的回应并将它们配对或以某种方式让他们跟随其相应的与会者的电子邮件地址,因为Zap中的其余步骤都会执行,每个电子邮件/与会者。

以下是我已成功测试的解决方案代码。它涉及的不仅仅是电子邮件:

emails = [] 
attendeeList = input_data['attendeeEmails'].split(',') 
for email in attendeeList: 
    a = {'Email' : email.strip()} 
    emails.append(a) 
return emails 

这里是基兰提供的其他解决方案:

[{'Email': email.strip()} for email in input_data['attendeeEmails'].split(',')] 

的谷歌日历数据是这样的:

attendees: 
    1: 
     displayName: Doug Christensen 
     email: [email protected] 
     responseStatus: needsAction 
    2: 
     displayName: Doug Christensen 
     email: [email protected] 
     responseStatus: needsAction 
    3: 
     self: true 
     email: [email protected] 
     organizer: true 
     responseStatus: accepted 

所以我想“responseStatus”,我唯一能想到的是:

emails = [] 
position = 0 
responseList = input_data['attendeeReponses'].split(',') 
attendeeList = input_data['attendeeEmails'].split(',') 
for email in attendeeList: 
    a = {'Email' : email.strip(), 'responseStatus' :  reponseStatus(position).strip()} 
    a = {'Email' : email.strip()} 
    emails.append(a) 
    position += 1 
return emails 

...但不起作用(在Zapier中说“错误”)。

我很迷惑参加者的电子邮件在2个谷歌变量“参加者电子邮件”和“参加者电子邮件”中可用。其中一个实际显示在变量中,以“Attendees [] Email”传递给Zap的Python代码,另一个显示为“Attendee Emails”。对于与会者的回复,只有一个选项可以体现为“参加者[] ResponseStatus”。

我显然不是专家,但这些标签给我一点数据结构?当包含'[]'时,使我认为提取电子邮件和与参加者响应配对的更加优雅的方法是可能的。

我希望Python代码以一种方式返回电子邮件及其相应的与会者响应,以便为每个电子邮件/响应对执行一次以下Zap步骤。

再次,任何指导将不胜感激。

道格

回答

0

原因你的错误是,你试图用括号()列表访问的元素。你应该使用括号[]

即使修复后,你可以以更pythonic的方式做到这一点。您应该使用内置函数enumerate(),而不是使用自己的变量跟踪您在列表中的位置。这将跟踪您的索引,而且您不必手动增加索引。

你会使用这样的

emails = [] 

responseList = input_data['attendeeReponses'].split(',') 
attendeeList = input_data['attendeeEmails'].split(',') 
for i,email in enumerate(attendeeList): 
    a = {'Email': email.strip(), 'responseStatus': reponseStatus[i].strip()} 
    emails.append(a) 
return emails 
+0

谢谢SOOH了!我纠正了我的一些拼写(“响应”),并将“responseStatus []”更改为“responseList []”,并进行了一次调整,并且效果很好! –