1

Campaign Monitor Open イベントを取得し、Zapier で Python コード Action を使用して POST API 経由でデータを Segment.com にパイプしようとしています。

次のエラーが発生し続けます:

バーグル。run python の作成中にエラーが発生しました。:-( エラー: コードにエラーがありました! トレースバック (最新の呼び出しが最後): SyntaxError: 無効 >syntax (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()

エラーが何を参照している可能性があるかについて何かアドバイスはありますか? これをより良く達成するための全体的なアドバイスはありますか?

4

2 に答える 2

0

@Bryan Helmigに感謝します。その構文は、 import 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()
于 2016-09-22T18:47:07.543 に答える
0

これを行う:

payload =
{}

不適切な構文です。試す:

payload = {}

また、リンターを使用することをお勧めします - http://infoheap.com/python-lint-online/が役立つかもしれません!

于 2016-09-22T18:11:16.103 に答える