根据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转换相同的字典并手动构建网址,则可以正常工作。
所以可能有些东西不能用我的编码工作但是什么?
谢谢!
答案 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
那样的字符串