You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于urllib.parse.quote报TypeError: quote_from_bytes() expected bytes的求助

解决TypeError: quote_from_bytes() expected bytes的问题

这个错误的根源很明确:urllib.parse.quote()函数只接受字符串或字节类型的输入,但你传入的params字典里有好几个整数类型的值(比如debitAccountNumber、amount这些)。当函数尝试处理非字符串的参数时,会默认试图将其转为字节,这就触发了TypeError。

这里有两种简单的修复方案,你可以根据自己的场景选择:

方案1:传入参数时统一转成字符串

直接修改你的参数字典,把所有数值类型的值改成字符串格式:

Make_Payment_params = {
    "debitAccountNumber": "12003189487",
    "creditAccountNumber": "12065812627",
    "amount": "100",
    "requestedExecutionDate": "2019-03-09"
}

方案2:在处理函数内部统一转换

如果你不想修改原始参数,可以在循环处理的时候,先把参数值转成字符串再传给quote():
修改__to_canonical_querystring_post方法里的拼接行:

canonical_querystring += param_key + "=" + urllib.parse.quote(str(param_value))

这样修改后,函数会自动把所有参数值转为字符串,再进行URL编码,就能正常生成符合要求的canonical querystring了。测试一下的话,最终生成的字符串应该是(按键字母排序):
amount=100&creditAccountNumber=12065812627&debitAccountNumber=12003189487&requestedExecutionDate=2019-03-09

内容的提问来源于stack exchange,提问作者jameson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:06:44