为Mixpanel API像素追踪器对JSON进行base64编码
根据Mixpanel的文档,在把我的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写的代码,用来把字典转换成base64格式并发送出去。我得到的代码是:
data = base64.b64encode(json.dumps(json))
url = 'http://api.mixpanel.com/track/?data=%d&ip=1&img=1'%data
requests.get(url)
我的问题是,这样发送后什么都没有被追踪到。如果我用这个在线转换工具把同样的字典转换一下,然后手动构造URL,就能正常工作。
所以可能是我的编码过程中出了问题,但我不知道是什么原因。
谢谢!
1 个回答
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
那样表示字符串。