base64为Mixpanel API像素跟踪器编码JSON

时间:2013-02-09 11:23:01

标签: python mixpanel

根据Mixpanel doc,我需要在将我的json数组发送到其API端点之前对其进行base64

json = {"event": "e-mail opened", 
        "properties": {
        "distinct_id": "28224", 
        "token": "494f5d201963457e632d463d1d4745e4", 
        "time": int(time.time()), 
        "campaign": "gameweek 27"
            }
    }

根据文档,我需要像那样发送它

  

http://api.mixpanel.com/track/?data= [BASE_64_JSON_EVENT]&安培; IP = 1&安培; IMG = 1

这是我的python代码,用于将dict转换为base64并发送它。我得到了

data = base64.b64encode(json.dumps(json)) url = 'http://api.mixpanel.com/track/?data=%d&ip=1&img=1'%data requests.get(url)

我的问题是它没有跟踪任何事情。如果我使用this online converter转换相同的字典并手动构建网址,则可以正常工作。

所以可能有些东西不能用我的编码工作但是什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

不确定问题是否是拼写错误,而是代替:

url = 'http://api.mixpanel.com/track/?data=%d&ip=1&img=1'%data

应该是

url = 'http://api.mixpanel.com/track/?data=%s&ip=1&img=1'%data

因为%d需要一个数字,而不是像%s那样的字符串