2016-09-22 3 views
1

Я пытаюсь запустить Campaign Monitor. Открывать события и передавать данные на Segment.com через POST API, используя код Python. Действие на Zapier.Ошибка кода Zapier Python Segment.com (usercode.py, строка 9)

я получаю следующую ошибку:

Bargle. We hit an error creating a run python. :-(Error: Your code had an error! Traceback (most recent call last): SyntaxError: invalid >syntax (usercode.py, line 9)

Вот существующий снимок экрана настройки (маскирующий код AUTH): Zapier Zap Setup for Code

код Python возврата ошибки:

url = 'https://api.segment.io/v1/track/' 
payload = 
{ 
    'userId': input_data['email'], 
    'event': 'Email Opened', 
    'properties': { 
    'listid': input_data['listid'], 
    'open_date': input_data['date'], 
    'cm_id': input_data['cm_id'], 
    'open_city': input_data['city'], 
    'open_region': input_data['region'], 
    'open_country': input_data['country'], 
    'open_lat': input_data['lat'], 
    'open_long': input_data['long'], 
    'open_country_code': input_data['country_code'] 
    }, 
    'context': { 
    'ip': input_data['ip'] 
    } 
} 

headers = { 
    'content-type': 'application/json', 
    'Authorization': 'Basic BASE64ENCODEDWRITEKEY' 
} 

response = requests.post(url, data=json.dumps(payload), headers=headers) 
response.raise_for_status() 
return response.json() 

Любые советы по поводу того, что может быть связано с ошибкой? Какие-либо рекомендации в целом о том, как лучше достичь этого?

ответ

0

Делать это:

payload = 
{} 

Является ли неправильное синтаксис. Попробуйте:

payload = {} 

Я также рекомендую использовать ЛИНТЕР - возможно http://infoheap.com/python-lint-online/ будет полезным для Вас!

0

Благодаря @Bryan Helmig. Этот синтаксис, помимо импорта json, исправил проблему. Для желающих это работает ...

import json 
import requests 
url = 'https://api.segment.io/v1/track/' 
payload = { 
    'userId': input_data['email'], 
    'event': 'Email Opened', 
    'properties': { 
    'listid': input_data['listid'], 
    'open_date': input_data['date'], 
    'cm_id': input_data['cm_id'], 
    'open_city': input_data['city'], 
    'open_region': input_data['region'], 
    'open_country': input_data['country'], 
    'open_lat': input_data['lat'], 
    'open_long': input_data['long'], 
    'open_country_code': input_data['country_code'] 
    }, 
    'context': { 
    'ip': input_data['ip'] 
    } 
     } 

headers = { 
    'content-type': 'application/json', 
    'Authorization': 'Basic WRITEKEYHERE' 
} 

response = requests.post(url, data=json.dumps(payload), headers=headers) 
response.raise_for_status() 

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

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