TypeError:列表索引必须是整数,而不是python POST请求中的str

TypeError:列表索引必须是整数,而不是python POST请求中的str,python,curl,post,methods,Python,Curl,Post,Methods,嗨,我正在尝试向比特币交易所的API发送帖子 我的代码是: def exchange(method,params): key = "XXXXX" secret = "XXXX" params["method"] = method params ["time"] = time.time() urllib.parse.urlencode() sign = hashlib.sha256(params,"","&") sign = json.dumps(

嗨,我正在尝试向比特币交易所的API发送帖子

我的代码是:

def exchange(method,params):
   key = "XXXXX"
   secret = "XXXX"
   params["method"] = method
   params ["time"] = time.time()
   urllib.parse.urlencode()
   sign = hashlib.sha256(params,"","&")
   sign = json.dumps(sign)
   headers = ["key:" + key, "hash:" + sign]
   headers = json.dumps(headers)
   req = urllib2.Request('https://XXXX/api/')
   req.add_header(headers)
   r = urllib2.urlopen(req)
   return  


exchange(["getinfo"],["s"])
我有

TypeError:列表索引必须是整数,而不是str

只有回应

你知道如何格式化这些数据吗

params["method"] = method

这是您要输入错误的行。您试图用字符串遍历数组,这是没有意义的。方括号中的值必须是整数而不是字符串。

为什么要将标题添加为JSON?我在api说明中读到了这一点。我不应该吗?它们只有php指令
req.add_header()
也有两个参数。你能不能把异常的完整回溯包括在内,这样我们就可以准确地指出异常是在哪里引发的,以及Python是如何达到这一点的?@MartijnPieters我粘贴了所有的代码,还有API的指令,然后先阅读Python
urllib2
文档。不,这不是添加标题的方式。PHP代码也没有将HTTP头编码为JSON。我还注意到,您的头名称搞错了,API会查找
API键
API哈希
。我应该如何更改它?您想用这一行做什么?数组params只有一个元素-[“s”]它是我的过度组合的param,应该是空的。你能详细解释一下吗?嗯,那么如何将params[“method”]重写到字典中呢?