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 []」,並進行了一次調整,並且效果很好! –