I have an error raised by the following piece of code
JavaScript
x
9
1
def __to_canonical_querystring_post(self, params):
2
canonical_querystring = ""
3
# parameters have to be sorted alphabetically for the signing part
4
for param_key, param_value in sorted(params.items()):
5
if canonical_querystring != "":
6
canonical_querystring += "&"
7
canonical_querystring += param_key + "=" + urllib.parse.quote(param_value)
8
return canonical_querystring
9
The params are Make_Payment_params = { “debitAccountNumber”: 12003189487, “creditAccountNumber”: 12065812627, “amount”: 100, “requestedExecutionDate”: “2019-03-09” }
and the error is raise TypeError(“quote_from_bytes() expected bytes”) TypeError: quote_from_bytes() expected bytes
Help is much appreciated
Advertisement
Answer
The argument to urllib.parse.quote
must be a string, but your code sometimes passes integers instead. Changing the call to something like urllib.parse.quote(str(param_value))
should fix the problem.