Вы правильно передаете словарь в аргумент заголовков, но ошибка говорит о том, что значение sign
не является строкой.sign
является объектом HMAC, и его необходимо преобразовать в строку:
>>> print(sign)
<hmac.HMAC object at 0x03337950>
Я бы взглянул на вызов sign.digest()
, чтобы увидеть, возвращает ли он ожидаемую строку.Если это так, то вы можете заменить headers={'apisign': sign}
на headers={'apisign': sign.digest()}
.