我为我正在使用的API创建了一个包装器。完整的包装器在这里:https://pastebin.com/nL089zwF
我正在使用以下代码运行呼叫:
$('.expand').css()
回复如下:
balanceBTC = api.GetBalance('BTC')
for i in balanceBTC['data']:
if i['symbol'] == 'btc':
print i['available']
Trace将代码的第50行标识为问题:
AttributeError: 'dict' object has no attribute 'respond'
所以我删除了.respond并留下了一个新错误:
return response.respond["false","False"].respond["true","True"].respond['":null','":None' ]
我知道答案是一个字典而且它没有钥匙而且导致错误的是什么(我认为?)但我是一个初学者,因为我去了,我不知道在代码本身上要更改/添加/删除的内容。
我很欣赏如何做的指导!谢谢。
以下是负责获取响应的API包装器的完整部分:
return response["false","False"], ["true","True"], ['":null','":None' ]
KeyError: ('false', 'False')
答案 0 :(得分:0)
晚编辑: 错误解决了,它得到了错误的密钥('数据',而不是'数据')
无论如何都是正确的版本(使用的版本)。
def api_query(self, method, values, req = None ):
if not req:
req = {}
time.sleep(1)
if method in self.public:
url = 'https://www.cryptopia.co.nz/api/'
elif method in self.private:
url = 'https://www.cryptopia.co.nz/api/'
else:
return 'Call Not Identified - Something Went Wrong.'
url += method + '?' + urllib.urlencode(values)
if method not in self.public:
url = "https://www.cryptopia.co.nz/Api/" + method
nonce = str( int( time.time() ) )
post_data = json.dumps( req );
m = hashlib.md5()
m.update(post_data)
requestContentBase64String = base64.b64encode(m.digest())
signature = self.key + "POST" + urllib.quote_plus( url ).lower() + nonce + requestContentBase64String
hmacsignature = base64.b64encode(hmac.new(base64.b64decode( self.secret ), signature, hashlib.sha256).digest())
header_value = "amx " + self.key + ":" + hmacsignature + ":" + nonce
headers = { 'Authorization': header_value, 'Content-Type':'application/json; charset=utf-8' }
r = requests.post( url, data = post_data, headers = headers )
return r.json() #changed here