Z
ZhSV
Добрый день!
Ошибка в коде:
Подскажите пожалуйста что надо поправить чтоб убрать ошибку в коде ниже.
Заранее благодарю.
Ошибка в коде:
Код:
Traceback (most recent call last):
File "C:/Cloud/Cripto/3.py", line 53, in <module>
print (api_query("GetBalance"))
File "C:/Cloud/Cripto/3.py", line 34, in api_query
signature = API_KEY + "POST" + urllib.parse.quote_plus( url ).lower() + nonce + requestContentBase64String
TypeError: must be str, not bytes
Заранее благодарю.
Код:
import time
import hmac
import urllib
import requests
import hashlib
import base64
import sys
import json
API_KEY = 'ac85417173...abdf98138e...02'
API_SECRET = 'KY9R6bgPfQeDr2kV...rwm4aoGk0EvQwU...eduafbsk'
def api_query( method, req = None ):
if not req:
req = {}
print ("def api_query( method = " + method + ", req = " + str( req ) + " ):")
time.sleep( 1 )
public_set = set([ "GetCurrencies", "GetTradePairs", "GetMarkets", "GetMarket", "GetMarketHistory", "GetMarketOrders" ])
private_set = set([ "GetBalance", "GetDepositAddress", "GetOpenOrders", "GetTradeHistory", "GetTransactions", "SubmitTrade", "CancelTrade", "SubmitTip" ])
if method in public_set:
url = "https://www.cryptopia.co.nz/api/" + method
if req:
for param in req:
url += '/' + str( param )
r = requests.get( url )
elif method in private_set:
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.encode('utf-8'))
requestContentBase64String = base64.b64encode(m.digest())
signature = API_KEY + "POST" + urllib.parse.quote_plus( url ).lower() + nonce + requestContentBase64String
hmacsignature = base64.b64encode(hmac.new(base64.b64decode( API_SECRET ), signature, hashlib.sha256).digest())
header_value = "amx " + API_KEY + ":" + hmacsignature + ":" + nonce
headers = { 'Authorization': header_value, 'Content-Type':'application/json; charset=utf-8' }
r = requests.post( url, data = post_data, headers = headers )
response = r.text
print ("( Response ): " + response)
return response.replace("false","False").replace("true","True").replace('":null','":None' )
# Public:
# +
# print api_query("GetCurrencies")
# +
print (api_query("GetMarket", [ 100, 6 ] ))
# {"Success":True,"Message":None,"Data":{"TradePairId":100,"Label":"DOT/BTC","AskPrice":0.00000020,"BidPrice":0.00000019,"Low":0.00000019,"High":0.00000021,"Volume":1263556.65136394,"LastPrice ":0.00000019,"LastVolume":774.83684404,"BuyVolume":50896673.08961847,"SellVolume":33046510.52562918,"Change":0.0},"Error ":None}
# Private:
print (api_query("GetBalance"))
# +
# print api_query("GetBalance", {'CurrencyId':2} )
Последнее редактирование модератором: