Skip to content
Advertisement

Troubelshooting raise TypeError(“quote_from_bytes() expected bytes”)

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.

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement