I have an error raised by the following piece of code
def __to_canonical_querystring_post(self, params): canonical_querystring = "" # parameters have to be sorted alphabetically for the signing part for param_key, param_value in sorted(params.items()): if canonical_querystring != "": canonical_querystring += "&" canonical_querystring += param_key + "=" + urllib.parse.quote(param_value) return canonical_querystring
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.