我尝试使用Zapier上的Python代码Action,通过POST API将数据传输到Segment.com。
我一直收到以下错误:
Bargle。我们在创建运行python时遇到错误。 :-(错误: 您的代码出错了!回溯(最近一次调用最后一次):SyntaxError:无效>语法(usercode.py,第9行)
以下是现有的设置屏幕截图(屏蔽身份验证代码): 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 :(得分:0)
这样做:
payload =
{}
语法不正确。尝试:
payload = {}
我还建议使用linter - 也许http://infoheap.com/python-lint-online/对你有帮助!
答案 1 :(得分: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()