2017-02-08 12 views
2

У меня есть строковая переменная в Zapier, которая содержит несколько электронных писем (@ gmail.com, b @ gmail.com и т. Д.). Мне нужно извлечь каждое письмо и передать его следующему действию Zapier. I've taken a screen shot of where this appears in Zapier Итак, строка, содержащая 2 сообщения электронной почты, заставит следующее действие Zapier запускаться дважды.Хотите вызвать действие Zapier для каждого письма, извлеченного из списка писем с помощью Python

Я попытался разобрать строку и загрузить словарь, вернув словарь.

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

Это возвращает все электронные письма в форме, в основном такие же, как и они, - список или строку, разделенные запятой. (Так что не кратные). Это приводит к тому, что следующее действие запускается в Zap, но с несколькими сообщениями в поле «Электронная почта». Не то, что я хочу.

Я также пробовал просто возвращать каждое электронное письмо, когда я прохожу через созданный список.

attendeeList = input_data['attendeeEmails'].split() 
for email in attendeeList: 
    output = {'Email' : email} 

Я еще не видел выхода из этого. Мне нужно около 1/2 часа, чтобы увидеть результаты любых попыток.

Боюсь, я не очень хорошо знаю Python - только то, что я мог узнать из нескольких часов, проведенных в «Академии Кодекса». Поэтому я знаю достаточно, чтобы быть опасным. Но с передачей переменных и предполагаемой способностью Zapier инициировать множественные действия из возврата одного словаря, я немного перегружен. Я уверен, что это просто, если вы знаете больше, чем я.

Мой источник строки, содержащей электронные письма, - это Календарь Google. И с 15-минутным циклом проверки это долгий показ, чтобы получить обратную связь о том, что я сделал. Любое руководство было бы удивительным.

ответ

0

Вам необходимо разделить на разделитель, в данном случае запятую.

Так что ваш attendeeList будет выглядеть следующим образом:

attendeeList = input_data['attendeeEmails'].split(',') 

И чтобы удалить лишние пробелы, вы должны затем .strip() электронная почта в вашем цикле, как это:

for email in attendeeList: 
    a = {'Email' : email.strip()} 
    emails.append(a) 
+0

спасибо. Это отлично поработало. –

+0

У меня есть расширенная возможность, которую я хотел бы добавить к этому. Метод, который я создал, не работает. Вместо этого он обнаружил структуру данных, чем мог бы поставить под сомнение мой первоначальный подход и указать способ охватить мою вторую потребность. –

+0

Hi wpercy, еще раз спасибо за вашу помощь. Не могли бы вы взглянуть на мой последующий вопрос, который я приложил к оригиналу? –

1

Следующая один вкладыш предоставит вам список словарей из списка писем, разделенных запятыми. Надеюсь, Запир возьмет это оттуда.

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

Также имейте в виду, что вам не нужно ждать 15 минут каждый раз. Вы можете просто нажать на повторное тестирование, когда вы перейдете на стадию «test this step».

+0

Спасибо. Очень элегантно. Скоро проверит. –

+0

Привет Киран. Не могли бы вы взглянуть на мой следующий вопрос, который я приложил к оригиналу? –

+1

Этот вопрос слишком велик, и отдельные вопросы следует размещать как отдельные вопросы. @DougChristensen – Kieran

 Смежные вопросы

  • Нет связанных вопросов^_^